Mejores prácticas para PHP

11

Al hacer una plantilla como single.php y tienes php envuelto en html, es mejor:

  1. ¿Iniciar + detener PHP? por ejemplo

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

O

  1. Echo HTML y Escape PHP? Por ejemplo -

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

No tengo una opción preferida y me encuentro haciendo ambas cosas, solo curiosidad por escuchar algunos pensamientos

Joey Urbansoul
fuente
66
El primer método es más amigable para el diseñador. Entonces, cuando esté en plantillas con mucho HTML y un poco de PHP, haga el primero. El segundo es útil cuando hay mucho PHP y un poco de HTML. Hazlo functions.phpo complementos, etc.
Fayaz
3
Olvidaste que también hayprintf( '<h1 class="post-title">%s</h1>', get_the_title() );
Howdy_McGee

Respuestas:

10

Esa pregunta solo es relevante, porque WordPress usa una mezcla de un lenguaje de codificación y un lenguaje de diseño. Si usaría un lenguaje de plantilla, sintaxis, entonces este tema no es relevante. Pero a tu pregunta. Si usa su fuente de ejemplo para un tema, mucho más lenguaje de diseño como html, entonces prefiero el primero: es mucho más legible para el diseñador y los usuarios, debe leer el marcado. Es más fácil crear una visión general sobre el marcado, tener las etiquetas abiertas y cerradas, etc.

Para la inclusión en complementos, el código con más lógica y flujo es el segundo ejemplo más fácil de implementar. El tema principal es php, no marcado y esto debería ser visible en la fuente. Ese también es un punto para pensar en excluir este marcado en los archivos de plantilla y separar el marcado de la lógica.

bueltge
fuente
1
Otro beneficio del primero es que ciertos editores resaltarán la etiqueta de apertura o cierre correspondiente si coloca el cursor en él, pero el último generalmente romperá esa conveniencia.
MonkeyZeus
5

Como se explica en la respuesta anterior, el primer método es amigable para el diseñador y el segundo método puede ser adecuado en casos de complementos y códigos php complejos donde el número de etiquetas html es muy pequeño.

Pero la mayoría de etiquetas de plantilla WordPress tiene beforey afterparámetros y es más apropiado utilizar sus códigos HTML dentro de la llamada a la función.

por ejemplo en el caso de the_titleque tenga tres parámetros

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

puede pasar su html a los parámetros antes y después como a continuación

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

las ventajas de este método es

  • Diseñador amigable
  • no imprimirá etiquetas html si el título está vacío
  • se puede usar en códigos php complejos, así como en archivos de plantilla simples
Anwer AR
fuente
0

El primer método es preferible porque:

  • Se separa claramente el diseño HTML fijo de los contenidos dinámicos.
  • Es más fácil de leer.
  • Es más compatible con el resaltado de sintaxis en la mayoría de los editores, porque los atributos html en cadena generalmente no se reconocen.
  • Le impide mezclar HTML y PHP con demasiada facilidad.

Debido a las razones indicadas anteriormente, el primer método conduce a un código que es más fácil de entender y, por lo tanto, más fácil de mantener.

En mi experiencia, en algunas situaciones, puede parecer más conveniente usar el segundo método. Sin embargo, eso generalmente se debe a un diseño débil (software) y debe verse como una señal de advertencia.

not2savvy
fuente
0

Su ejemplo de código es marginal porque solo muestra dos líneas de código, pero creo que la respuesta general es bastante situacional. Si está utilizando una línea PHP dentro de un bloque HTML, use el primer método. Si está utilizando una línea HTML dentro de un bloque PHP, vaya con la segunda.

Nadav
fuente