LINUX.ORG.RU

Ставить или не ставить точку с запятой

 


0

0

Как в PHP принято оформлять вставки типа <?= ... ?>?

Ставить или нет точку с запятой перед закрывающим тегом? Или, может быть, после нее еще поставить пробел? Какой из вариантов выбрали бы вы и почему?

1. <?=gettext()?>

2. <?=gettext();?>

3. <?=gettext(); ?>

первый, символов меньше

umren ★★★★★
()

Какой из вариантов выбрали бы вы и почему?

Выбрал шаблонизатор.

Без шаблонизатора пишу так:

<?= gettext() ?>

Black_Roland ★★★★
()
Последнее исправление: Black_Roland (всего исправлений: 1)
Ответ на: комментарий от Jaberwock

Использовать короткие тэги не рекомендуется.

Там семь пятниц на неделе. С 5.4, пишут, «<?=» вообще не выключается. Выключается только <? ... ?>.

AS ★★★★★
()
Ответ на: комментарий от Jaberwock

Использовать короткие тэги не рекомендуется.

Вместо

<?php echo gettext(); ?>
рекомендуется писать
<?= gettext() ?>

ostin ★★★★★
()

man PHP_CodeSniffer

anonymous
()
Ответ на: комментарий от Jaberwock

Использовать короткие тэги не рекомендуется.

<? и <?= — это не одно и то же ;)

...

Но я присоединяюсь к оратору выше, выбравшему шаблонизаторы. В первую очередь по приземлённой причине того, что записи, типа <a href="<?= $url ?>">some</a> смотрятся уродски, не валидируются и часто сбивают синтаксическую подсветку mcedit (когда там вложенные кавычки), во вторую, по более серьёзной причине бОльшей гибкости популярных шаблонизаторов — наследование, автоэкранирование, всякий синтаксический сахар и т.п.

KRoN73 ★★★★★
()
Ответ на: комментарий от forwardonly2015
$ php -r '$foo->bar->baz = 1;'
PHP Warning:  Creating default object from empty value in Command line code on line 1
KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Но я присоединяюсь к оратору выше, выбравшему шаблонизаторы.

Вот за это дико плюсую. Вы пожалуй первый адекватный PHP программист, которого я вижу. Отчего то остальные пхп-макаки недопрограммисты устраивают лапшу из php/html используя при этом MVC фреймворк. Ведь в этом случае подключить нормальный!!! шаблонизатор сам бог велел.

abc
()
Ответ на: комментарий от greatchina

Какие шаблонизаторы для PHP считаются «нормальными»?

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

Если по конкретным названиям, то нормальными считаются, например, Smarty и Twig.

KRoN73 ★★★★★
()
Ответ на: комментарий от ostin

http://stackoverflow.com/questions/1386620/php-echo-vs-php-short-tags

<? and <?= are called short open tags, and are not always enabled (see the short_open_tag directive) with PHP 5.3 or below (but since PHP 5.4.0, <?= is always available).

Actually, in the php.ini-production file provided with PHP 5.3.0, they are disabled by default:

$ grep 'short_open' php.ini-production ; short_open_tag short_open_tag = Off

So, using them in an application you want to distribute might not be a good idea: your application will not work if they are not enabled.

<?php, on the other side, cannot be disabled — so, it's safest to use this one, even if it is longer to write.

Except the fact that short open tags are not necessarily enabled, I don't think there is much of a difference.

Так что если нужна поддержка версии пять точка три или ниже, то эхо единственный гарантированный вариант. Для более высоких версий разницы сейчас нет.

Jaberwock ★★★
()
Ответ на: комментарий от greatchina

Какие шаблонизаторы для PHP считаются «нормальными»?

Twig

abc
()
Ответ на: комментарий от Kilte

А как это зависит от наличия фреймворка?

Потому что сколько я видел проектов на голом PHP, дак там был не код а понос какой-то. Фреймворк хотя бы структуру проекту задает, чтобы другой разработчик мог войти в проект за условные 1-2 часа.

abc
()
Ответ на: комментарий от abc

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

Suntechnic ★★★★★
()
Последнее исправление: Suntechnic (всего исправлений: 1)
Ответ на: комментарий от Suntechnic

PHP и есть нормлаьный шаблонизатор

Не нормальный. Наследования нет, компиляции в монолит нет, автоматического экранирования нет, вставки в HTML-код невалидны...

но вместо того чтобы использовать его, на нем стали писать сайты

Интересно, а какие связки ты видишь в варианте ЯП + PHP = сайт? Что в роли ЯП? :D Python+PHP? Java+PHP? C+PHP? :D

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Не нормальный. Наследования нет, компиляции в монолит нет, автоматического экранирования нет, вставки в HTML-код невалидны...

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

Интересно, а какие связки ты видишь в варианте ЯП + PHP = сайт? Что в роли ЯП? :D Python+PHP? Java+PHP? C+PHP? :D

Наверное если бы я видел и такие связки существовали, то они бы использовались повсеместно, правда? Я пытался сделать Tcl+PHP ради фана. Было прикольно, но не больше.

Давай признаем - технологии применяемые в web'е это полный трэш, начиная с полностью кривого html и заканчивая хромым на все ноги PHP.

Suntechnic ★★★★★
()
Ответ на: комментарий от Suntechnic

PHP и есть нормлаьный шаблонизатор

Нет. Он хотел им быть. Но пхп был написан на коленке, и прежде всего был языком или ок шаблонизатором для Personal Home Page Tools.

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

Как-то так.

abc
()
Ответ на: комментарий от Jaberwock

Версия пять точка три не поддерживается разработчиками (может год уже как), зачем ты это все написал?)

ostin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.