Najlepsza praktyka dla PHP

11

Kiedy robisz szablon taki jak single.php i masz php zawinięte w HTML, czy najlepiej:

  1. Start + Stop PHP? na przykład

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

Lub

  1. Echo HTML i Escape PHP? Na przykład -

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

Nie mam wstępnego wyboru i robię oba, po prostu ciekawi mnie kilka myśli

Joey Urbansoul
źródło
6
Pierwsza metoda jest bardziej przyjazna dla projektantów. Więc jeśli masz szablony z dużą ilością HTML i trochę PHP, zrób pierwszy. Drugi jest przydatny, gdy jest dużo PHP i trochę HTML. Zrób to functions.phplub wtyczki itp.
Fayaz
3
Zapomniałeś, że jest teżprintf( '<h1 class="post-title">%s</h1>', get_the_title() );
Howdy_McGee

Odpowiedzi:

10

To pytanie jest istotne tylko dlatego, że WordPress używa miksu z języka kodowania i języka układu. Jeśli użyjesz języka szablonów, składni, to ten temat nie jest istotny. Ale na twoje pytanie. Jeśli użyjesz swojego przykładowego źródła dla motywu, znacznie więcej języka układu, takiego jak html, wtedy wolę ten pierwszy - jest on znacznie bardziej czytelny dla projektantów i użytkowników, musisz przeczytać znaczniki. Łatwiej jest stworzyć przegląd znaczników, mieć otwierające i zamykające tagi itp.

W przypadku wtyczek dołączanych kod z większą logiką i przepływem jest drugim przykładem łatwiejszym do wdrożenia. Głównym tematem jest php, a nie znaczniki i powinno to być widoczne w źródle. Warto również pomyśleć o wykluczeniu tego znacznika w plikach szablonów i oddzieleniu znacznika od logiki.

bueltge
źródło
1
Kolejną zaletą pierwszego jest to, że niektórzy redaktorzy podświetlą odpowiedni tag otwierający lub zamykający, jeśli umieścisz w nim kursor, ale ten drugi zwykle zepsuje tę wygodę.
MonkeyZeus
5

Jak wyjaśniono w powyższej odpowiedzi, pierwsza metoda jest przyjazna dla projektantów, a druga metoda może być odpowiednia w przypadku wtyczek i skomplikowanych kodów php, w których liczba znaczników HTML jest niewielka.

Ale większość tagów szablonu WordPress ma beforei afterparametry oraz jego bardziej właściwe wykorzystanie kodów html wewnątrz wywołania funkcji.

na przykład w przypadku the_titlema trzy parametry

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

możesz przekazać html do parametrów przed i po, takich jak poniżej

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

zalety tej metody to

  • Przyjazny dla projektantów
  • nie wydrukuje tagów HTML, jeśli tytuł jest pusty
  • może być stosowany w złożonych kodach php, a także w prostych plikach szablonów
Anwer AR
źródło
0

Pierwsza metoda jest lepsza, ponieważ:

  • Wyraźnie oddziela stały układ HTML od zawartości dynamicznej.
  • Jest łatwiejszy do odczytania.
  • Jest lepiej obsługiwany przez podświetlanie składni w większości edytorów, ponieważ atrybuty HTML w ciągach zwykle nie są rozpoznawane.
  • Zapobiega zbyt łatwemu mieszaniu HTML i PHP.

Z powodów wymienionych powyżej pierwsza metoda prowadzi do kodu, który jest łatwiejszy do zrozumienia, a zatem łatwiejszy w utrzymaniu.

Z mojego doświadczenia wynika, że ​​w niektórych sytuacjach wygodniejsze może być użycie drugiej metody. Jest to jednak zazwyczaj spowodowane słabą konstrukcją (oprogramowania) i powinno być postrzegane jako znak ostrzegawczy.

not2savvy
źródło
0

Twój przykład kodu jest marginalny, ponieważ pokazuje tylko dwie linie kodu, ale uważam, że ogólna odpowiedź jest dość sytuacyjna. Jeśli używasz linii PHP w bloku HTML, użyj pierwszej metody. Jeśli używasz linii HTML w bloku PHP, przejdź do drugiej.

Nadav
źródło