J'ai quelques PHP expériences, mais presque pas WP expériences d'écriture de thèmes ... Je commence juste le voyage.
Tous les thèmes que j'ai examinés jusqu'à présent dans le référentiel .org ont un code qui ressemble à ceci:
<?php if (condition) { ?>
..some html
<?php } else { ?>
..some other html
<?php } ?>
au lieu de:
<?php
if (condition) {
echo ..some html
}
else {
echo ..some other html
}
?>
Je peux voir que lorsque vous utilisez un éditeur tel que notepad ++, nous préférons avoir le code html "nu" et non pas dans une instruction echo, afin de permettre à l'éditeur de coder en couleur et de faire correspondre les balises HTML avec leurs balises de fin, etc.
Mais je vois beaucoup de modèles qui ont une tonne de code PHP et très peu de code HTML - et qui enveloppent toujours les balises PHP autour de tous les ligne de code. Pour moi, cela rend la lecture difficile.
Y a-t-il une raison technique à cela, ou juste une préférence de la part du développeur?
Comme toujours, les gens copient tout ce qu’ils ont appris et le premier style est le style de codage de wordpress core.
Comme vous l'avez dit vous-même, quand il y a un gros bloc de HTML généré, il est plus facile de regarder (et balancer des balises) sous le premier style, mais les personnes pragmatiques utiliseront le second quand ce n'est pas le cas.
C’est vraiment juste une préférence de style de codage, rien de technique derrière.
Bien que vous puissiez affirmer que le code est plus difficile à lire lorsque vous entrez et sortez du mode PHP plus souvent, il s'agit également d'une bonne pratique largement recommandée dans PHP non pour mélanger les styles de sortie.
Autrement dit, vous générez du code HTML à partir du mode HTML ou du code HTML à partir d'instructions echo
… mais vous ne mélangez pas les styles. Cela créerait un cauchemar de maintenance.
Les auteurs des modèles que vous lisez respectent cette pratique exemplaire.
Cependant, au final, oui, il ne s'agit que d'un problème de style/gestion: rien dans le langage ne l'exige par nature.
Un système de gabarit judicieux n'autoriserait pas inline PHP du tout , n'autorisant que des extensions déclaratives du balisage HTML, mais c'est une autre histoire…