dev-master
9999999-dev http://cmsx.ruCMSx template component
MIT
The Requires
- php >=5.3.0
- cmsx/container dev-master
by Igor Osharin
Wallogit.com
2017 © Pedro Peláez
CMSx template component
В качестве синтаксиса шаблонов используется нативный PHP., (*1)
Объект шаблона расширяет класс контейнера значений (CMSx\Container)., (*2)
Для использования шаблонов предварительно необходимо указать полный путь к папке с шаблонами: Template::SetPath($path), после чего в шаблонах указывается относительный путь., (*3)
hello.php - файл шаблона:, (*4)
<h1><?= $hello ?></h1>
Вызов шаблона:, (*5)
$t = new \CMSx\Template('hello.php'); //Предполагается что путь к шаблонам указан ранее
$t->set('hello', 'World');
echo $t->render(); //Получим <h1>World</h1>
Для удобства использования шаблон реализует метод __toString, что позволяет сократить вызов из примера до echo $t;., (*6)
В шаблоне доступ к текущему объекту шаблона возможен через переменную $this. Таким образом, если в шаблоне нужна какая-либо логика, можно сделать класс-наследник шаблона, реализовать нужный метод и обращаться к нему из шаблона $this->myMethod(). Аналогично, вызов <?= $hello ?> можно заменить на <?= $this->get('hello') ?>, (*7)
Если в процессе выполнения шаблона выбрасывается Exception, он перехватывается. Доступ к исключению можно получить с помощью getException()., (*8)
При разработке полезно сразу видеть отладочную информацию, поэтому можно включить режим Template::EnableDebug($on), тогда при возникновении ошибки внутри шаблона, вместо содержимого шаблона будет выведена информация об ошибке., (*9)
CMSx template component
MIT