2012-01-30 1 views
3

(я использую Google Translate)Плюсы и минусы: Написание HTML в PHP

Я отделяю мой HTML и PHP, просто для хороших практик программирования в MVC. Однако много раз я сталкивался с кем-то, кто писал HTML непосредственно в файле PHP.

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

И они всегда говорят: «Я не обязан застревать на деталях.»

Технически, потому что это не рекомендуется?

+0

Я согласен с тобой. Итак, шаблон также является файлом PHP? Вы используете какой-либо известный MVC? –

+2

Люди будут спорить об этом много. Проблема с смешиванием HTML и PHP заключается в том, что трудно повторно использовать код, и часто гораздо труднее его прочитать и понять.Есть много способов сделать это - Twig (как в Symfony) и HAML находятся на пределе разлуки. Я думаю, что только с использованием HTML внутри представлений и ограничения PHP, который есть там, 'if',' for', 'foreach' достаточно выделяет вещи. –

+1

Не выполняя исследования по этой теме, я не думаю, что есть разница в производительности. Насколько мне известно, единственное, что это повредит, - это читаемость. Это затрудняет чтение и понимание вашего кода при переходе между HTML и PHP. – Travesty3

ответ

4

Не рекомендуется, потому что прошлое показало, что чем дольше работает рутина или сценарий, тем труднее управлять. Если вам нужно иметь дело с HTML и PHP в одном файле, вам нужно написать больше, чем если бы вы разделили код на два. Это подводит меня к тому, что вы пишете больше в одном файле с HTML и PHP, что приводит к более сложному коду.

Это только общий. Есть программисты, у которых нет проблем с большими фрагментами кода, и у которых нет проблем с перемещением языков в одних и тех же файлах.

На первый взгляд это может показаться проще. Однако, поскольку программное обеспечение имеет тенденцию становиться более сложным по мере его роста, после некоторого времени роста стоит подумать о том, как модулировать код, например. для отделения представления от обработки запроса.

Одна общая линия, которая нарисована между компонентами, находится между выходом (дисплеем) и обработкой. Обработка будет взаимодействовать с выходным уровнем, а затем вместо двух заданий в одном скрипте/подпрограмме (обработка и отображение вывода). Фактически вывод фактически абстрагируется/нормализуется/сводится, чтобы заставить выходной код работать на нем самостоятельно. Например. вместо вывода HTML в браузер, обработка передаст объекты на выходной уровень, а выходной уровень преобразует их в HTML тогда (значение объекта здесь широкое, может быть переменной, массивом или объектом ООП) ,

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

+0

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

3

По-моему, вы можете думать об этом, как это.

Если PHP-код связан с тем, как информация отображается пользователю, тогда это нормально, чтобы иметь ее в представлении (если вы используете подход MVC) или смешиваться с HTML. Иногда вам нужно небольшие фрагменты кода для отображения информации по вашему желанию, «если эта дата передана, тогда покажите ее так, иначе покажите ее так».

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

+0

Точно то, что я собирался написать. Поздравляю с вашим 2k rep mate :) –

+0

@Truth Спасибо! :) –

+0

@ChristoferEliasson Я согласен с вашей точкой зрения, в некоторых случаях, в обмен на ошибку/валидацию, действителен PHP + HTML вместе, но я до сих пор не совсем согласен, я думаю, PHP должен делать свою работу только, поскольку HTML это. В любом случае, вы сделали очень хорошо. Спасибо. –

 Смежные вопросы

  • Нет связанных вопросов^_^