UPD: Эх, надо было это в форуме "Управление сайтом" разместить. Оно же всего Битрикса касается, а я не вчитался до конца. Можно тему перенести ?
Приветствую.
Сразу хочу сказать, что веб-программированием практически не занимаюсь, но, время от времени, приходится решать вопросы с запуском тех или иных CMS под Apache.
Столкнулся с Битриксом. Впервые попалась проблема с тем, что код не определяется, как php. Беглый поиск сразу выдал ссылку http://www.w3schools.com/php/php_syntax.asp , где написано:
Цитата
A PHP script always starts with <?php and ends with ?>. A PHP script can be placed anywhere in the document.
On servers with shorthand-support, you can start a PHP script with <? and end with ?>.
For maximum compatibility, we recommend that you use the standard form (<?php) rather than the shorthand form.
PHP также допускает короткие теги <? и ?>, однако использовать их нежелательно
Собственно вопрос, почему в Битрикс используется "<?" вместо рекомендованного "<?php" ?
Вот тут написано, что это может вызвать проблемы с xml: http://www.php.net/manual/ru/ini.core.php#ini.short-open-tag . То есть, получается, что попытка запуска Битрикс на произвольном хостинге может привести к неработоспособности других виртуальных страниц.
А я ни разу не сталкивался с необходимостью включения shorttag. Как, впрочем, и с Битрикс. Всегда что-то случается впервые... Всё же, хотелось бы услышать мнение разработчиков.
Хотя мне и PHP не нравится одним моментом... Поведение mail() в safe mode заслуживает того, чтобы этот язык выкинуть и никогда больше не использовать... Хотя, кажется, в новых версиях от safe mode избавиться решили.
Я - представитель хостера, если хотите. И я привёл цитаты из документации на PHP, где сказано, почему следует использовать "<?php", а не "<?". Так что я считаю, что это не мои проблемы, а проблемы Битрикс. Клиент просто старый, лет 12 с нами. Был бы обычный, отказал, и дело с концом.
Если вы хотите использовать PHP совместно с XML, вы можете отключить эту опцию, чтобы беспрепятственно использовать <?xml ?>. В противном случае, вы можете отобразить это при помощи PHP, например: <?php echo '<?xml version="1.0"?>'; ?>.
То есть, включение этой опции приведёт к необходимости модификации кода ряда других сайтов, где использован xml, и использован не посредством громоздкого второго варианта.
Цитата
<? - это уже для многих СТАНДАРТ
На http://www.php.net другие рекомендации. Прямо-таки противоположные. Можно ссылку, где написано, что стандарт "<?" ?
Евгений Смолин пишет: Да не, пусть запрещают, просто клиент уйдет к адекватному хостеру, а эти могут продолжать дальше утверждать, что "мы работаем строго по стандарту"
То есть, Вы предлагаете разогнать других клиентов, у которых, пока, всё работает, но перестанет после модификаций конфига ради Битрикса ?
Да что Вы говорите? Уже много лет использую хостинги, без <?php и как то все работает. Работает и с <? php. Хостинги топовые. В том числе и зарубежные Наверное мы все не правы. А вы продолжайте упорствовать, приводить нелепые аргументы. Ну а мы продолжим работать с нормальными, вменяемыми хостерами. Совок, блин - "1.я всегда прав 2. если не прав,смотри пункт 1."
Согласно рекомендациям разработчиков PHP, именно так и есть: Вы не правы. Соответствующие ссылки я привёл. Все, кто тут, пока, писал, привёл ничем не подтверждённые слова и "прекрасный" аргумент: все так делают. Огромное количество PHP-кодеров и функцией mail(), которую я упоминал, пользоваться не умеют правильно, и что ?
Цитата
Евгений Смолин пишет: Совок, блин - "1.я всегда прав 2. если не прав,смотри пункт 1."
Опыт многолетний. Пока я часто оказываюсь прав. Если не сейчас, то лет через 5-10. Удобные и правильные вещи остаются, неудобные отмирают. Будем делать ставки о сроке, когда в php уберут "<?" вообще ?
При чём тут хостинг, если во всех примерах на php.net пишут "<?php", а про "<?" только упоминают ? В общем ладно, проблема есть и озвучена, надеюсь, разработчики Битрикс примут к сведению когда-нибудь.
Deprecated не означает, что немедленно перестанет работать. Пройдут годы (десятилетия?), прежде чем они решатся выкинуть эту опцию. Между тем, в 5.4 конструкция <?= работает всегда независимо от опции short_open_tag. Т.е. проблему разработчики php понимают адекватно.
asy2, вы пришли на форум разработчиков чтобы узнать реальную ситуацию или доказать, что тут все неправы? Больше похоже на второе.
Использование short_open_tag настолько удобно для разработчиков, что получило повсеместное распространение. Много лет назад мне пришлось править код после публикации на хостинге т.к. там были включены NOTICE (без возможности выключить). Сегодня такой хостинг никому не интересен в принципе. Тоже самое относится к short_open_tag.
Разработчики выбирают хостинг для своих проектов и рекомендуют клиентам. Сегодня программисты стремятся делать программы, понятные и удобные для пользователей, а хостеры стремятся создавать условия, удобные для программистов.
Если вы не будете прислушиваться к своим потребителям - останетесь за пределами рынка.
Если вы хотите использовать PHP совместно с XML, вы можете отключить эту опцию, чтобы беспрепятственно использовать <?xml ?>
ситуация из разряда сферических коней в вакууме... покажи мне программиста который рискнёт исполняемый апачем файл начать с <?xml в надежде что этот файл НЕ будет исполняться...
по-моему вас должно больше беспокоить что у всех не будет работать ПРИВЫЧНЫЙ для многих php программистов открывающий тег, а весь код пойдёт в вывод...
Denis Sharomov пишет: asy2, вы пришли на форум разработчиков чтобы узнать реальную ситуацию или доказать, что тут все неправы? Больше похоже на второе.
И первое, и, в случае недоказанности ситуации, второе. По первому вопросу я, пока, не увидел никаких аргументов, которые заставляют разработчиков писать код вопреки рекомендациям разработчиков самого языка. Так что, теперь, второе. Конечно, если меня аргументированно не переубедят.
Вы пишите приложение, которое предполагается использовать многими. Это должно накладывать на Вас соответствующие обязательства. Берём WordPress - <?php. Берём osCommerce - <?php. Joomla, Durpal - <?php. Один Bitrix с <?. Можете показать хоть один аналогичный продукт с short tag ?
А, вообще, меня удручает нарастающий хаос в сети, который, как раз, и проистекает из "как хочется", а не "как правильно".
Цитата
Если вы не будете прислушиваться к своим потребителям - останетесь за пределами рынка.
Хостинг у нас, скорее, сопутствующее направление. Плюс мне более интересно сделать так, чтобы изменения не затрагивали то, что уже работает. А переключение опции влияет на уже работающий код. Дабы удовлетворить потребность, придётся заводить ещё один ресурс, с другими опциями PHP. Впрочем, для этого, разового пока, случая клиенту завели VPS.
MyIE пишет: Интересно было бы узнать, почему изначально шорт_таг не был включен? тоже из-за рекомендаций в документации?
Честно скажу, понятия не имею. Я этим тогда не занимался. В общем-то, я специалист по сетям и оборудованию в первую очередь, дополнительно - по ОС Linux на серверах, а непосредственно apache и прочий web - это только в отсутствие непосредственного web-администратора. Потому и не хочется менять то, что работает, без серьёзного аргумента. "Так хочется" - не аргумент. Нужно видеть плюсы, которые перевешивают минусы.
Основным плюсом является облегчение разработки сайтов. Понимаете, стандарты... это конечно хорошо... и вроде как все должны их придерживаться, но если есть вариант проще, который ничего не портит (не в вашем случае), почему бы не использовать его? Ведь главное: это конечный клиент, а клиенты не смотрят на стандарты php, валидацию верстки разработанного для них сайта и т.д.
P.S. Всегда знал что гуглу плевать на валидацию верстки, сразу стало интересно: используют ли они шорг_таг??? Кто знает ?