dev-master
9999999-dev http://cmsx.ruCMSx template component
MIT
The Requires
- php >=5.3.0
- cmsx/container dev-master
by Igor Osharin
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