Prática recomendada para PHP

11

Ao criar um modelo como single.php e você tiver o php envolto em html, é melhor:

  1. Iniciar + Parar PHP? por exemplo

     <h1 class="post-tilte"><?php the_title(); ?></h1>
     <p class="post-content"><?php the_content();?></p>

Ou

  1. Eco HTML e Escape PHP? Por exemplo -

    <?php echo '<h1 class="post-title">' . get_the_title() . '</h1>
    <p class="post-content"' . get_the_content() . '</p>

Eu não tenho uma escolha pré-preparada e me vejo fazendo as duas coisas, apenas curioso para ouvir alguns pensamentos

Joey Urbansoul
fonte
6
O primeiro método é mais amigável ao designer. Então, quando estiver em modelos com muito HTML e pouco PHP, faça o primeiro. O segundo é útil quando há muito PHP e um pouco de HTML. Faça-o functions.phpou plug-ins etc.
Fayaz 28/02
3
Você esqueceu que também háprintf( '<h1 class="post-title">%s</h1>', get_the_title() );
Howdy_McGee

Respostas:

10

Essa pergunta é relevante apenas porque o WordPress usa uma combinação de uma linguagem de codificação e linguagem de layout. Se você usasse uma linguagem de modelo, sintaxe, esse tópico não é relevante. Mas a sua pergunta. Se você usar seu exemplo de fonte para um Tema, muito mais linguagem de layout como html, prefiro o primeiro - é muito mais legível para designers e usuários, é preciso ler a marcação. É mais fácil criar uma visão geral sobre a marcação, você tem as tags de abertura e fechamento etc.

Para os plug-ins de inclusão, código com mais lógica e fluxo é o segundo exemplo mais fácil de implementar. O tópico principal é php, não marcação e isso deve estar visível na fonte. Esse também é um ponto para pensar em excluir essa marcação nos arquivos de modelo e separar a marcação da lógica.

bueltge
fonte
1
Outro benefício do primeiro é que determinados editores destacam a tag de abertura ou fechamento correspondente se você colocar o cursor nele, mas o último geralmente quebra essa conveniência.
MonkeyZeus 28/02
5

Conforme explicado na resposta acima, o primeiro método é amigável para designers e o segundo método pode ser adequado em casos de plugins e códigos php complexos, onde o número de tags html é apenas pequeno.

Mas a maioria das marcas de modelo WordPress tem beforee afterparâmetros e sua mais apropriado usar seus códigos html dentro da chamada de função.

por exemplo, no caso de the_titleter três parâmetros

the_title( $before, $after, $echo );

você pode passar seu html para antes e depois de parâmetros como abaixo

the_title( '<h2 class="title">', '</h2>', true );

as vantagens deste método são

  • Designer amigável
  • não imprimirá tags html se o título estiver vazio
  • pode ser usado em códigos php complexos, bem como em arquivos de modelo simples
Anwer AR
fonte
0

O primeiro método é preferível porque:

  • Separa claramente o layout HTML fixo do conteúdo dinâmico.
  • É mais fácil de ler.
  • É melhor suportado pelo destaque de sintaxe na maioria dos editores, porque os atributos html na cadeia de caracteres geralmente não são reconhecidos.
  • Impede que você misture HTML e PHP com muita facilidade.

Por causa dos motivos expostos acima, o primeiro método leva a um código que é mais fácil de entender e, portanto, mais fácil de manter.

Na minha experiência, em algumas situações, pode parecer mais conveniente usar o segundo método. No entanto, isso geralmente ocorre devido ao design fraco (do software) e deve ser visto como sinal de aviso.

not2savvy
fonte
0

Seu exemplo de código é marginal porque mostra apenas duas linhas de código, mas acredito que a resposta geral é bastante situacional. Se você estiver usando uma linha PHP dentro de um bloco HTML, use o primeiro método. Se você estiver usando uma linha HTML em um bloco PHP, vá com o segundo.

Nadav
fonte