Акын: блоки
Я тут, если помните, принялся описывать свой шаблонизатор «Акын», многие просили. Сейчас попробую продолжить. Итак, часть вторая: блоки.
Частые паттерны — скрыть целый блок разметки или повторить его несколько раз, решается в «Акыне» одной конструкцией: описанием блока. Что именно будет происходить с блоком, шаблон «не знает». Блок идентифицируется своим именем и описывается следующим образом:
<:имя>
Значение переменной: <b>{$var}</b><br />
</:имя>В API шаблонизатора есть два
Пусть блок, описанный выше, нужно повторить три раза, заменяя «var» каждый раз на определённый текст, вот как это выглядит в коде:
$t = rt::t('template');
for ($i = 0; $i<3; $i++) {
$t->var = $i;
$t->iterate('имя');
}
echo $t;Чтобы просто показать содержимое этого блока можно вызвать
В предыдущей части я забыл упонянуть ещё одну важную конструкцию, позволяющую включать один шаблон в другой. Выглядит она, на мой взгляд, очень логично:
<$+шаблон>
<$+шаблон секция>Конструкция предпроцессорная (обрабатывается первым проходом), т. е. все блоки, переменные и прочее будут включены в шаблон из которого она вызвана.
В следующий раз опишу actions, а так же дальнейшие планы. На этом описательная часть закончится, если по этой части не потребуются разъяснения.
«Обычное PHP-приложение»
Читаю Django Book (книга
In contrast, other Web development platforms couple the URL to the program. In typical PHP (https://www.php.net//) applications, for example, the URL of your application is designated by where you place the code on your filesystem.
Может мне
В итоге «обычные» (т. е. «встречающееся чаще других»)
P.S. ещё лингвисизм по отношению к PHP из той же книги:
If you’re experienced in another Web development platform, such as PHP or Java, you may be thinking, “Hey, let’s use a query string parameter!”, something like /time/plus?hours=3, in which the hours would be designated by the hours parameter in the URL’s query string (the part after the ?).