Минимум: Шаблонизатор

1.13K
.
# AlkatraZ (09.03.2017 / 14:24)
Далее, для разработчиков ты публикуешь правила.
Лучше ограничивать разработчиков программно, а не словесно. Разработчики любят не придерживаться правил ради "быстрой и легкой" разработки, а если решение вообще не позволяет обойти правила, то уже ничего не поделаешь, приходится им следовать.
.
╭∩╮ (`-`) ╭∩╮
В случае объектного подхода, получается чрезвычайно удобно и данный путь более предпочтителен, чем простые массивы, или переменные.

Дело в том, что потом, в реальном приложении, когда оно станет довольно большим, ты фиг разберешься, откуда берется переменная и через некоторое время (когда забудешь) у тебя возникают сложности с поддержкой своего же кода.

А когда ты передаешь инстанс ArrayObject, потом в IDE очень легко и наглядно отслеживаются источники всех переменных. Даже через несколько лет, вернувшись к приложению, ты легко сопоставишь что к чему и откуда что берется.
.
╭∩╮ (`-`) ╭∩╮
# Delphinum (09.03.2017 / 14:28)
Лучше ограничивать разработчиков программно, а не словесно.
Ну как я писал выше - объектный подход.
В шаблоне не составит труда дописать строчку и проверить instanceof и никто не скормит шаблону какие-то левые переменные.
.
AlkatraZ, объекты это слишком сложно, для статей проекта "Минимум" )
.
AlkatraZ, задачу для следующей статьи предлагай )
.
╭∩╮ (`-`) ╭∩╮
# Delphinum (09.03.2017 / 14:30)
AlkatraZ, объекты это слишком сложно, для статей проекта "Минимум" )
Да, для простейшего варианта вполне достаточно и то, что ты предложил.
Для сайта с минимумом посещалки, нагрузкой на ob_start() вполне можно пренебречь.
---
Однако тогда объясни мне: как ты собираешься передавать переменные в дочерние шаблоны. которые вызываются из материнского?
.
Delphinum
# AlkatraZ (09.03.2017 / 14:33)
Однако тогда объясни мне: как ты собираешься передавать переменные в дочерние шаблоны. которые вызываются из материнского?

<?= template('дочка.html', ['foo' => 'bar']) ?>
.
╭∩╮ (`-`) ╭∩╮
# Delphinum (09.03.2017 / 14:35)
<?= template('дочка.html', ['foo' => 'bar']) ?>
Это да, но откуда берется эта переменная? Ты ее будешь передавать в родительский шаблон, а потом уже в нем передавать в дочерний?
.
AlkatraZ, да. Либо она будет формироваться в родительском шаблоне. Это не кошерно конечно, но что поделать )
.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
# Delphinum (09.03.2017 / 14:38)
Это не кошерно конечно, но что поделать )
Ну а я о чем
Это не просто некошерно, а выглядит крайне по быдлокодерски.
Посему. подобного желательно избегать.

В реальном приложении появится сильная путаница и головная боль для кодера.
Всего: 28