, всегда доступны. Удобство программистов - важный фактор, почему их не рекомендуют?"> , всегда доступны. Удобство программистов - важный фактор, почему их не рекомендуют?">
Web

Допустимо ли использование коротких тегов PHP?

Вот информация согласно официальной документации:

В PHP можно использовать четыре пары открывающих и закрывающих тегов. Два из них, <?php ?> и <script language="php"> </script>, всегда доступны. Два других это короткие теги и теги в стиле ASP, их можно включать и выключать из файла конфигурации php.ini. Таким образом, хотя некоторые люди находят короткие теги и теги в стиле ASP удобными, они менее переносимы и, как правило, не рекомендуются.

По моему опыту в большинство серверов действительно включены короткие теги.

<?=

намного удобнее, чем

<?php echo 

 

Удобство программистов - важный фактор, почему их не рекомендуют?

 

Ответ 1

Они не рекомендуются, потому что это PITA, если вам когда-либо придется перенести свой код на сервер, где он не поддерживается (и вы не сможете их включить). Как вы говорите, существует множество владельцев, которые позволяют использовать shorttags, но не все из них разрешают их. Если вы хотите поделиться своими сценариями, лучше всего использовать полный синтаксис.

Я согласен с тем, что <? и <?= проще для программистов, чем <?php и <?php echo, но можно выполнить замену этих тегов, если вы каждый раз используете один и тот же стиль.

Я вообще не считаю удобочитаемость значительным поводом. У наиболее серьезных разработчиков есть возможность подсветки синтаксиса.

Начиная с PHP 5.4, <?= ... ?> теги поддерживаются везде, независимо от настроек коротких тегов. Это должно означать, что их безопасно использовать в переносимом коде, но это означает, что существует зависимость от PHP 5.4+. Если вы хотите поддерживать до 5.4 и не можете гарантировать короткие теги, вам все равно нужно будет использовать <?php echo ... ?>.

Кроме того, вам необходимо знать, что теги ASP <%,%>, <% = и тег script удалены из PHP 7. Поэтому, если вы хотите поддерживать переносимый код и хотите переключиться на самые современные инструменты, подумайте об изменении этих частей кода.

 

Ответ 2

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

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

ЕДИНСТВЕННЫЙ допустимый аргумент ПРОТИВ использования коротких тегов состоит в том, что они поддерживаются не на всех серверах. Замечания о конфликтах с XML-документами маловероятны, потому что вам в любом случае не следует смешивать PHP и XML; и если да, то вы должны использовать PHP для вывода строк текста. Безопасность никогда не должна быть проблемой, потому что, если вы помещаете конфиденциальную информацию, такую как учетные данные для доступа к базе данных, в файлы шаблонов, тогда у вас есть более серьезные проблемы!

Теперь, что касается вопроса поддержки серверов, по общему признанию, нужно знать их целевую платформу. Если виртуальный хостинг является вероятной целью, следует избегать коротких тегов. Но для многих профессиональных разработчиков клиент признает (и действительно, это зависит от факта), что мы будем диктовать требования к серверу. И вы НИКОГДА не будете работать с хостинг-провайдером, который даст вам абсолютный контроль над конфигурацией сервера - в таком случае вы можете рассчитывать на гораздо большее количество проблем, чем просто потеря поддержки коротких тегов. Такого не бывает.

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

Схожие статьи

Web

Как завершить сеанс PHP через 30 минут?

Web

Как выполнить усечение строки до первых n символов и добавить три точки в конце

Чек-листы оптимизации сайта, продвижения сайта и готовности к запуску
Web

Чек-листы оптимизации сайта, продвижения сайта и готовности к запуску

Web

Как получить содержимое POST на php?