Статьи

Стоит ли закрывать теги PHP? Дебаты продолжаются …

Я был поражен ответом на мою недавнюю статью « Стоит ли закрывать теги кода PHP? Я не думаю, что было бы спорным или вызвать столько споров среди разработчиков!

Напомним, закрытие тегов PHP (?>) Совершенно необязательно, если вы кодируете файл только для PHP и в нем нет смешанного HTML. Файлы, содержащие определения одного класса, являются хорошими кандидатами.

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

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

Респонденты в основном попали в одну из трех групп:

  1. Разработчики PHP, возможно, работающие над более крупными проектами или командами, где пропустить закрытие?> Было полезно, рекомендовано или задокументировано как стандарт кодирования.
  2. Пуристы кодирования, возможно, с опытом работы в XHTML или XML, которые считают недостающие теги неправильными.
  3. Разработчики из других дисциплин, которые посчитали эту дискуссию смешной!

Согласно опросу SitePoint, треть разработчиков PHP не использовала закрывающий тег, третья считала это плохой практикой, а третья не понимала, что ее можно опустить.

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

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


// PHP file
DoSomeStuff();
<?html
<p>output HTML</p>
?>
DoMoreStuff();

Я подозреваю, что эта идея слишком революционная. Возможно, его можно добавить как параметр php.ini, но это сломает существующие приложения и вызовет хаос.

Тем не менее, чистые файлы PHP были идеей с большим потенциалом. По сути, вы должны указать, что файл содержит только код PHP. Это может быть достигнуто путем:

  • используя специальное расширение файла, например, имя файла .pphp или
  • с использованием модифицированной функции include / require, такой как
 
include('filename.php', PHP_ONLY);

Если бы это было реализовано, ваш PHP-код не требовал бы открытия или закрытия тегов. Кроме того, функциональность может быть добавлена ​​без ущерба для существующих приложений PHP — она ​​будет обратно совместимой.

Но, эй, это всего лишь идея, и она может никогда не пойти дальше этой статьи. Дебаты о стиле кодирования PHP будут бушевать…