Повторение HTML в вашем PHP


Это скорее вопрос, чем технический вопрос, и мне жаль, если эти вопросы кажутся глупыми или ответ очевиден для некоторых, но мне было интересно...

Лучше ли всегда повторять любой HTML, который вам нужно написать, или закрывать теги PHP, когда вам нужно написать HTML, и снова открывать после этого? по сути, встраивание PHP в HTML?

Вот пример каждого из них:

                for($x=0;$x<count($customers);$x++)
            {

                echo '<tr>';
                echo '<td><a class=summary href=mailto:'.$customers[$x]["Email"].'>'.$customers[$x]["Email"].'</td>';
                echo '<td>'.$customers[$x]["Title"].'</td>';
                echo '<td>'.$customers[$x]["FirstName"].'</td>';
                echo '<td>'.$customers[$x]["Surname"].'</td>';
                echo '<td>'.$customers[$x]["DeliveryCountryID"].'</td>';
                echo '<td>'.$customers[$x]["LanguageID"].'</td>';
                echo '</tr>';
            }

, который показывает, что ВЕСЬ HTML-код повторяется

                <?php
                for($x=0;$x<count($customers);$x++)
                {
            ?>
                    <tr>
                    <td><?=$customers[$x]["Email"]?></td>
                    <td><?=$customers[$x]["Title"]?></td>
                    <td><?=$customers[$x]["FirstName"]?></td>
                    <td><?=$customers[$x]["Surname"]?></td>
                    <td><?=$customers[$x]["DeliveryCountryID"]?></td>
                    <td><?=$customers[$x]["LanguageID"]?></td>
                    </tr>
            <?php
                }
?>

Вот пример встраивание PHP в HTML.

Причина, по которой я спрашиваю, заключается в том, что я нахожусь в начале своей карьеры программиста, у меня мало опыта, и я присоединился к компании, в которой их старый разработчик, очевидно, более опытный, чем я, ВСЕ рассказал.

Я никогда не делал этого таким образом, так как мне нравится встраивать PHP в свой HTML, и иногда мне трудно читать его код.

Есть ли причина, по которой он сделал это таким образом, или это лучший способ, или мне стоило бы медленно менять код на быть больше похожим на то, как я обычно поступаю?

Author: Jay Bhatt, 2013-03-28

4 answers

Лучшим способом было бы использовать механизм шаблонов, такой как Smarty, и разделить вашу бизнес-логику и презентацию. Это дает вам больше гибкости в вашем коде.

В вашем случае я бы предпочел второй подход ("<td><?=$customers[$x]["Email"]?></td>"), так как его легко читать и понимать. Это также имеет еще два преимущества,

  1. если у вас есть кто-то еще, работающий над приложением, например дизайнер, ему будет проще вносить изменения.
  2. В будущем, если вы решите использовать шаблон движок вы можете легко конвертировать свой код.
 0
Author: Jay Bhatt, 2013-03-28 12:24:10

Сначала спросите себя, что значит "лучше".

Если "лучше" - это что-то более читаемое, вы можете столкнуться со следующими проблемами:

  1. В HTML-коде, если есть некоторые <?php echo $var[attr]; ?>, вы можете легко пропустить их.
  2. В PHP-коде, если есть много echo '<tr><td ............................ ';, у вас могут возникнуть проблемы с пониманием того, что внутри, особенно если у вас много экранированных символов. Вы должны добавить символ новой строки.

Мой ответ: это зависит от того, что для вас важнее: HTML? использовать 1.PHP? используйте 2.

Если "лучше" - это что-то более быстрое, чем использовать 1. Меньше для анализа занимает меньше времени. Но действительно ли это время имеет значение?

Если "лучше" - это что-то более короткое и менее занимающее много памяти, то HTML-файлы содержат меньше текста. Но действительно ли эти байты имеют значение?

В любом случае, я всегда избегаю объединения двух методов, например:

<div>
  <p>Some text....</p>
<!-- some other stuff like lots of form fields -->
<?php
// some php code
echo '</div>';

Это потому, что в IDE вы можете легче находить ошибки, такие как незакрытые теги, если он не заглядывает в PHP.

 0
Author: Voitcus, 2013-03-28 12:25:32

Это личное предпочтение, но практика, которую я видел наиболее распространенной, заключается в том, чтобы HTML был основой и вставлял PHP там, где это необходимо. Как сказал кто-то другой, отделите свою бизнес-логику от своей презентации. Используйте отдельный каталог для функций или вашего кода, затем в начале документа выполните include_once. Таким образом, ваш код презентации представляет собой довольно простой HTML (обычно его легче обрабатывать дизайнерам), а PHP используется для вставки того, что необходимый.

Это особенно полезно, когда PHP используется как CMS или с использованием веб-контента, управляемого базой данных. По возможности отделяйте свою логику от презентации.

 0
Author: David R., 2013-03-28 12:33:44

Существует множество способов повторить ваш код. и вы не можете считать, что это лучший способ.

Все зависит от вас. что тебе нравится? по пути мне нравится встраивать PHP в HTML (второй подход). но может быть и другое, как эхо всего HTML-кода в php.

Все зависит от вас. что ты выберешь. все они одинаковы

 0
Author: Sumit Bijvani, 2013-03-28 12:34:25