Альтернативный синтаксис управляющих структур для шаблонизации.

Статус
В этой теме нельзя размещать новые ответы.

melo

однажды
Добрый вечер, оставим спор о том какой шаблонизатор лучше. Представим, что мы используем php в качестве шаблонизатора. Вот какой код у нас может быть:
PHP:
<?php if (expression) { ?>
<div class="message">OK. Your registration is successful</div>
<?php } else { ?>
<div class="error">Something went wrong! Please try again later! </div>
<?php } ?>
или
PHP:
<?php if ( expression ) : ?>
<div class="message">some message here!</div>
<?php else : ?>
<div class="error">some error here!</div>
<?php endif ?>
у нас даже может быть php 5.4 и short tags, что немного сократит код.
Я использую второй вариант. Почему? В первом варианте встреченная мной закрывающая скобка ни о чем не говорит, тогда во втором варианте, я понимаю к какой управляющей структуре она относиться. Но первый вариант в свою очередь более лаконичен, чем второй. И в первом варианте, при использовании IDE, не проблема подвести мышку к закрывающей скобке и увидеть открывающий тег. Какие ваши соображения по этому поводу?
 

Redjik

Джедай-мастер
Я первый вариант юзаю.
+ форматирую код еще, поэтому в прицнипе вижу, откуда ноги растут.
 

A1x

Новичок
нетбинс подсвечивает и второй вариант тоже
 

Фанат

oncle terrible
Команда форума
A1x
В смысле показывает закрывающий тег, если стоишь на открывающем? У меня по дефолту не подсвечивает, и это единственная причина, по которой я склоняюсь к первому. а так-то больше люблю второй.

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

PHP:
<div>
<?php if ( expression ) : ?>
    <div class="message">
<?php     foreach($data as $row): ?>
        <span><?=$row['name']?></span>
<?php     endforeach ?>
    </div>
<?php else : ?>
    <div class="error">some error here!</div>
<?php endif ?>
Тогда результирующий код получится не рваным, и не будут смешиваться отступы пхп и хтмл
 

Andkorol

Новичок
В смысле показывает закрывающий тег, если стоишь на открывающем? У меня по дефолту не подсвечивает
Кстати да, таки подсвечивает, похоже, по дефолту - ничего не настраивал.
Подсвечивает таким образом - точки и закрывающий тег:

И даже автоматом генерит закрывающие теги.
NB 7.0.1
 

A1x

Новичок
Фанат да, если поставишь курсор на endif подсвечивает соответствующее двоеточие. Сам не очень давно заметил
 

Ragazzo

TDD interested
Фанат
По-моему сомнительная рекомендация, т.к.
PHP:
<?php                                             foreach($data as $row): ?>
иногда будет выглядеть ну совсем странно. Я лично просто стараюсь не делать такой мега-суп :)
 

Фанат

oncle terrible
Команда форума
Ragazzo
Ну, во-первых, я не думаю, что будет больше трех уровней вложенности.
во-вторых, не вижу принципиальной разницы с кодом
PHP:
                                             foreach($data as $row) {
 

Ragazzo

TDD interested
Фанат
я говорил про вложенность именно(твое форматирование), а что касается "скобок", то использую альтернативный синтаксис, т.к. заметить endforeach; endif; проще чем } .
 

Adelf

Administrator
Команда форума
Второй. С короткими тегами. Для шаблона это более читабельно.
 

melo

однажды
Я использую второй вариант, у меня PHPStorm и в нем я вижу начало и конец if-endif. Но получив вопрос: зачем тебе это, если можно использовать { } и кода меньше, понимаю, что тут скорее вопрос личных предпочтений. Существенного выигрыша тут нет.
 

Krishna

Продался Java
А я вот всё никак не понял до сих пор, как же можно ЯП использовать в качестве шаблонизатора?

Я, конечно, всё понимаю, мода, тренды, но со здравым рассудком-то как быть? :)
 

Ragazzo

TDD interested
Krishna
В чем проблема? Я так подозреваю ты хочешь устроить холивар вида php/smarty/twig/etc... по-моему глупо, в 80 (#статистика) % можно спокойно обойтись php в виде "шаблонизатора", сложные блоки легко выделяются в виджеты, и т д. :)
 

Krishna

Продался Java
Я ничего не хочу, мне уж пофиг :)
Просто это смешно, вот и всё. Взрослые дяди сидят и делают вид, что без шаблонизатора им лучше писать шаблоны.
Мыши плакали, кололись, но продолжали жрать кактус...
 

Ragazzo

TDD interested
Krishna
Странно, по моему никто не делал такой вид) особой разницы между
PHP:
//template
<?php if ($exp): ?>
    <span>message1</span>
<?php else: ?>
    <span>message2</span>
<?php endif; ?>
и тем что будет написано на любом шаблонизаторе не вижу. я лично применяю шаблонизатор там, где он необходим, если такое случается, а остальное дело вкуса. Я сомневаюсь, что ты в одном файле какого-либо view делаешь сложные логические ветвления и выводы, где просто жизненно необходим шаблонизатор :D ну если нужен то применяй, не вижу проблемы :) но если применяешь то twig.
P.S. не спится потому-что диплом пишешь? :D
 

С.

Продвинутый новичок
А я вот всё никак не понял до сих пор, как же можно ЯП использовать в качестве шаблонизатора?

Я, конечно, всё понимаю, мода, тренды, но со здравым рассудком-то как быть? :)
От новичка такой вопрос можно понять, но от старожила это слышать странно. Выглядит как толстый троллинг.
 

Фанат

oncle terrible
Команда форума
Ragazzo
я так и не понял суть твоей претензии и что ты предлагаешь взамен.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху