У меня есть HTML-файл, в котором я использую PHP вот так:

...
<?=$someVariable;?>
<html code>
<?php do something ?>
<?php do something ?>
<div>
<?php do something ?>
</div>
<?php do something ?>
...

Это хороший способ пойти, или я должен поместить весь HTML в PHP echo? Я имею в виду, что я запускаю / останавливаю скрипт внутри веб-страницы несколько раз только из-за одного вывода одной переменной или какого-то блока HTML-кода.

Я делаю это так для лучшей читаемости кода HTML / PHP во время разработки.

2
Martin Perry 7 Май 2016 в 19:28

4 ответа

Лучший ответ

Ваш вопрос «какой путь лучше» можно разбить на два вопроса:

  1. Какой способ более эффективен?

  2. Какой способ читабельнее?

Ответ на вопрос 1 заключается в том, что разница незначительна. Код PHP создан для очень быстрого выполнения на сервере. Обычно процессы, которые занимают много времени в PHP, представляют собой сложные функции, требующие, например, итераций над большими объемами данных, однако фактическое считывание одного тега занимает очень мало времени для обработки.

Ответ на вопрос 2 полностью зависит от ситуации. В вашей ситуации вы постоянно добавляете теги <?php и ?>, когда вы могли бы сделать все это одновременно, поэтому я лично считаю, что нужно поместить все это в одно эхо, однако во многих случаях удобнее размещать отдельные элементы php, например, в следующем виде:

<form action="<?php htmlspecialchars($_SERVER['PHP SELF']);?>" method="POST">
  <?php echo $dynamic_input1'?><br>
  <input type="text" name="text1">
  <?php echo $dynamic_input2'?><br>
  <input type="text" name="text2">
</form>

Сообщите мне, помогло ли это.

2
Webeng 7 Май 2016 в 16:52

Вам следует начать использовать шаблоны (читай: модели просмотра). Чтобы HTML оставался читаемым, вы можете перейти к логике в начало файла PHP и оставить только печать переменных в коде HTML.

1
Pietro 7 Май 2016 в 16:44

Я не фанат нескольких блоков html / php. Обычно я использую heredoc , вот пример:

<?php
$myTitle = "Heredoc is Cool";
$myArray = array(array('someIndex' => '1st Paragraph'), array('anotherIndex' => '2nd Paragraph'));

echo <<< LOL
<!DOCTYPE html>
<html>
<head>
<title>{$myTitle}</title>
</head>
<body>
<h1>{$myArray['0']['someIndex']}</h1>
<p>{$myArray['1']['anotherIndex']}</p>
</body>
</html>
LOL;
?>

Использование heredoc помогает мне писать код без необходимости конкатенации , кавычек и нескольких блоков php между html, что иногда может сбивать с толку . Heredoc также помогает сделать мой код более читабельным .

1
Pedro Lobito 7 Май 2016 в 16:45

Это немного снижает производительность. слишком мало. Если вас больше беспокоит читабельность кода, вы можете управлять кодом в разных файлах и классифицировать код (это мой личный прием). Например, код кнопки «Нравится» в HTML будет иметь вид файла like.txt. Всякий раз, когда я хочу использовать кнопку «Нравится», я просто добавляю

file_get_contents("like.txt");

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

Это основное препятствие программирования (обеспечение качества). Увеличение одной вещи может уменьшить другую, например, повышение функциональной совместимости и гибкости снизит производительность (зависит от того, насколько). Поэтому вам нужно измерить, что вам больше всего нужно в конкретном программном проекте.

0
Mamoon Ahmed 7 Май 2016 в 16:41