Лучшая практика для 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. Эхо 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или плагинов и т.д.
Fayaz

3
Вы забыли, что естьprintf( '<h1 class="post-title">%s</h1>', get_the_title() );
Howdy_McGee

Ответы:


10

Этот вопрос актуален только потому, что WordPress использует смесь языка кодирования и языка разметки. Если вы будете использовать язык шаблонов, синтаксис, чем эта тема не актуальна. Но на ваш вопрос. Если вы используете исходный пример для Theme, гораздо больше языка разметки, такого как 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.