Best practice per PHP


11

Quando fai un template come single.php e hai php racchiuso in html, è meglio:

  1. Start + Stop PHP? per esempio

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

O

  1. Eco HTML ed Escape PHP? Per esempio -

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

Non ho una scelta preliminare e mi ritrovo a fare entrambe le cose, solo curioso di sentire alcuni pensieri


6
Il primo metodo è più amichevole per i designer. Quindi, quando sei nei template con molto HTML e un po 'di PHP, fai il primo. Il secondo è utile quando c'è molto PHP e un po 'di HTML. Fallo functions.phpo plug-in ecc.
Fayaz,

3
Hai dimenticato che c'è ancheprintf( '<h1 class="post-title">%s</h1>', get_the_title() );
Howdy_McGee

Risposte:


10

Questa domanda è rilevante solo perché WordPress utilizza un mix tra un linguaggio di codifica e un linguaggio di layout. Se si utilizza un linguaggio modello, sintassi, questo argomento non è pertinente. Ma alla tua domanda. Se usi la tua fonte di esempio per un tema, molto più linguaggio di layout come html, allora preferisco il primo: è molto più leggibile per designer e utenti, è necessario leggere il markup. È più facile creare una panoramica del markup, avere i tag di apertura e chiusura, ecc.

Per l'inclusione nei plugin, il codice con più logica e flusso è il secondo esempio più semplice da implementare. L'argomento principale è php, non markup e questo dovrebbe essere visibile nel sorgente. Questo è anche un punto a cui pensare di escludere questo markup nei file modello e separare il markup dalla logica.


1
Un altro vantaggio del primo è che alcuni editor evidenziano il corrispondente tag di apertura o chiusura se si posiziona il cursore su di esso, ma quest'ultimo di solito interrompe tale comodità.
MonkeyZeus,


5

Come spiegato nella risposta sopra, il primo metodo è designer friendly e il secondo metodo potrebbe essere adatto in caso di plugin e codici php complessi in cui il numero di tag html è solo pochi.

Ma la maggior parte dei tag dei modelli di WordPress ha beforee afterparametri ed è più appropriato usare i codici HTML all'interno della chiamata di funzione.

ad esempio nel caso in the_titlecui abbia tre parametri

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

puoi passare il tuo html ai parametri prima e dopo come di seguito

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

i vantaggi di questo metodo è

  • Designer amichevole
  • non stampa i tag html se il titolo è vuoto
  • può essere utilizzato in codici php complessi, nonché in semplici file modello

0

Il primo metodo è preferibile perché:

  • Separa chiaramente il layout HTML fisso dai contenuti dinamici.
  • È più facile da leggere.
  • È meglio supportato dall'evidenziazione della sintassi nella maggior parte degli editor, poiché gli attributi html nella stringa di solito non vengono riconosciuti.
  • Ti impedisce di mescolare HTML e PHP troppo facilmente.

A causa delle ragioni sopra esposte, il primo metodo porta a un codice che è più facile da capire e quindi più facile da mantenere.

Nella mia esperienza, in alcune situazioni, può sembrare più conveniente usare il secondo metodo. Tuttavia, ciò è generalmente dovuto al design debole (software) e dovrebbe essere visto come un segnale di avvertimento.


0

Il tuo esempio di codice è marginale perché mostra solo due righe di codice, ma credo che la risposta complessiva sia piuttosto situazionale. Se stai usando una linea PHP all'interno di un blocco HTML, usa il primo metodo. Se stai usando una linea HTML all'interno di un blocco PHP, vai con la seconda.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.