Eu já vi essa convenção praticamente em todos os lugares e, às vezes, chega perto de me deixar louco:
<?php //The loop ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; // end of the loop. ?>
Onde o <?php
e o fechamento ?>
estão em cada linha, mesmo se não houver código HTML intermediário.
Minha pergunta é: por que? Por que incluir todas essas tags extras?
Para mim, parece que essa convenção adiciona uma quantidade significativa de confusão ao código, é chato seguir em primeiro lugar e acrescenta que muitos outros lugares para deixar acidentalmente de fora uma marca de abertura ou fechamento.
NOTA
Este é um código extraído do tema Twenty-Twelve, o exemplo dado pelo WordPress.
php
theme-development
customization
Indigenuity
fonte
fonte
Respostas:
Isso não é recomendado em nenhum guia de estilo do WordPress, e acho que é um estilo de codificação ruim. Os iniciantes estão usando esse estilo, talvez porque pareça mais com HTML…
Infelizmente, os temas padrão estão usando esse estilo com muita frequência; portanto, alguns iniciantes podem pensar que faz parte de um estilo de código.
Uma desvantagem desse estilo é a manipulação de comentários. Observe atentamente o exemplo a seguir e como ele não faz o que o autor pode esperar:
Boa sorte depurando isso. :)
Regra: alterne entre o contexto PHP e HTML somente se você precisar criar uma saída nos dois idiomas. Use quebras de linha regulares em todos os outros casos.
Atualização, novas idéias: todo arquivo HTML válido é um programa PHP completo e válido. Sim, mesmo que não contenha uma única linha de código PHP real.
Se você começar do HTML e adicionar pequenos pedaços de PHP passo a passo ... você pode acabar com o estilo que estamos discutindo aqui. É aí que entra em jogo a refatoração : uma vez que tudo funcione conforme o esperado, reescreva o código até que seja o mais legível possível, fácil de manter e estender, sem repetir partes.
Acho que algumas pessoas ficam felizes sem esse último passo, e é por isso que isso não vai morrer tão cedo.
fonte
<? ... ?>
para facilitar o entendimento do aninhamento. Uma coisa que eu faria de maneira diferente do exemplo do OP é que eu colocariathe_post();
sua própria linha.Embora eu evite isso nos comentários do PHP, sou um ávido iniciador / abridor de PHP nos arquivos de modelo. A alternativa envolve repetir o HTML via strings PHP, o que parece ainda pior na minha opinião. Como um exemplo primitivo:
O exemplo 2 é mais detalhado? Possivelmente? Mas mais fácil de ler e editar, na minha opinião. Você pode imaginar o quão feio pode ficar para HTML complexo.
Além disso, assim como uma nota lateral: usando
endforeach
eendif
ao escrever HTML entre o PHP evoluiu lógica legibilidade uma tonelada em comparação com}
.fonte
}
excesso,endif
porém, é que (em muitos editores) você pode ver facilmente onde está a abertura{
e, portanto, se tudo foi fechado corretamente. Tente descobrir isso comendif
e todo um conjunto de condicionais ...foreach ( $list_items as $list_item ) printf( '<li><a href="%1$s">%2$s</a></li>', $list_item->url, $list_item->name );
- duas linhas, HTML e PHP bem separadas. : P<? ... ?>
e<?= ... ?>
.endif
qualquer editor decente.É sobre a escolha entre ver a página como:
Pessoas diferentes tendem a pensar sobre isso de maneira diferente. Observe que as funções raramente usam esse estilo, porque parecem mais um bloco de PHP puro. Por outro lado, não é incomum nos modelos, porque eles são mais espalhados pelos arquivos e a quantidade de HTML puro pode ser facilmente mais do que a do PHP neles.
Se você observar os mecanismos de modelagem (Bigode, Twig, etc) - eles se parecem muito com esse estilo, exceto que sua sintaxe tende a eliminar a verbosidade do PHP comum.
PS: Quero observar que estou falando sobre a incorporação sã de PHP em HTML, não literalmente abrindo e terminando tags em todas as linhas apenas por isso.
fonte
A resposta é bem simples: público. Quando as pessoas (não os programadores) escolhem um tema, o FTP é instalado na instalação, a execução da configuração de 5 minutos e assim por diante já parece a programação para eles. Quando eles desejam adicionar ou alterar uma única linha do que quer que seja em seu tema, talvez já tenham descoberto o que é HTML. O PHP ainda estará longe de seu alcance. Então, meu palpite é que a idéia por trás disso é permitir adicionar ou remover elementos mais facilmente, sem quebrar tudo quando eles cometem um erro.
Nota: Não é disso que eu gosto, prefiro ou recomendo. É exatamente o que penso por que isso acontece.
fonte
Eu descobri que alguns novos programadores são treinados dessa maneira. Estou seguindo um curso de 40 horas sobre Lynda e o instrutor está soltando tags PHP em todas as linhas, com exceção das definições de função. Provavelmente é preciso traçar claramente linhas entre HTML e PHP, o que provavelmente ajuda as novas pessoas a entender onde o HTML termina e o PHP começa. Depois disso, provavelmente é um hábito. Eu estava começando a ficar irritado com isso e decidi ver se mais alguém estava reclamando.
fonte