Краща практика для PHP


11

Коли ви робите шаблон, такий як single.php, і у вас є PHP, загорнутий у HTML, найкраще:

  1. Почати + Зупинити PHP? наприклад

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

Або

  1. Echo HTML і Escape PHP? Наприклад -

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

У мене немає заздалегідь підготовленого вибору і я вважаю, що роблю обоє, просто цікаво почути деякі думки


6
Перший метод більш зручний для дизайнерів. Тож, коли у шаблонах з великою кількістю HTML та трохи PHP, зробіть перший. Другий корисний, коли багато PHP та трохи HTML. Зробіть це в functions.phpабо плагіни тощо
Фаяз

3
Ви забули, що є такожprintf( '<h1 class="post-title">%s</h1>', get_the_title() );
Howdy_McGee

Відповіді:


10

Це питання є актуальним лише тому, що WordPress використовує суміш із мови кодування та мови макета. Якщо ви використовуєте мову шаблону, синтаксис, ця тема не стосується. Але до вашого питання. Якщо ви використовуєте джерело прикладу для теми, набагато більше мови макета, як html, то я віддаю перевагу першому - він набагато читає для дизайнера та користувачів, там слід прочитати розмітку. Простіше створити огляд розмітки, чи є у вас відкриті та закривальні теги тощо.

Для включення в плагіни код з більшою логікою та потоком є ​​другим прикладом, який легше реалізувати. Основна тема - php, а не розмітка, і це має бути видно в джерелі. Це також сенс задуматися над тим, щоб виключити цю розмітку у файлах шаблонів і відокремити розмітку від логіки.


1
Ще однією перевагою першого є те, що певні редактори підкреслять відповідний тег відкриття або закриття, якщо ви помістите в нього курсор, але останній зазвичай зруйнує цю зручність.
MonkeyZeus


5

Як пояснено у відповіді вище, перший метод є зручним для дизайнерів, а другий метод, можливо, підходить у випадках плагінів і складних php-кодів, де кількість тегів HTML лише невелика.

Але більшість тегів шаблонів WordPress має beforeі afterпараметри, і їх більш доцільно використовувати ваші HTML-коди всередині виклику функції.

наприклад, у випадку, якщо the_titleвін має три параметри

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

ви можете передати свій HTML до та після параметрів, як показано нижче

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

переваги цього методу є

  • Дизайнерський
  • не надрукує html-теги, якщо заголовок порожній
  • може використовуватися як у складних php-кодах, так і у простих файлах шаблонів

0

Перший спосіб є кращим, оскільки:

  • Він чітко відокремлює фіксований HTML-макет від динамічного вмісту.
  • Це легше читати.
  • Він краще підтримується підсвічуванням синтаксису у більшості редакторів, тому що вбудовані HTML-атрибути зазвичай не розпізнаються.
  • Це не дозволяє занадто легко переплутати HTML та PHP.

Через вищезазначені причини, перший метод призводить до коду, який легше зрозуміти і, таким чином, легше підтримувати.

На мій досвід, у деяких ситуаціях може виявитися зручнішим використовувати другий метод. Однак це, як правило, пояснюється слабкою (програмною) конструкцією, і її слід розглядати як попереджувальний знак.


0

Приклад коду ви маргінальний, оскільки він містить лише два рядки коду, але я вважаю, що загальна відповідь є досить ситуативною. Якщо ви використовуєте рядок PHP в блоці HTML, використовуйте перший метод. Якщо ви використовуєте рядок HTML у блоці PHP, перейдіть до другого.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.