Используем шаблонизатор Twig в CakePHP
Есть такой замечательный php-шаблонизатор Twig которым с недавнего времени занимается автор фреймворка Symfony – Fabien Potencier.
По заверениям авторов этот шаблонизатор один из самых быстрых. Сторонние разработчики тоже подтверждают это.
Но речь в посте пойдет не о прелестях Twig, а о том как его можно «прикрутить» к CakePHP.
Порядок действий:
- Скачаем плагин cakephp-twig-view с помощью Git или архивом;
- Скопируем плагин в каталог /app/plugins/twig_view;
- Скачаем сам Twig Git’ом или архивом;
- Скачанный Twig необходимо разместить в каталоге /app/plugins/twig_view/vendors;
- В AppController’е вашего приложения добавим переменную var $view = ‘TwigView.Twig’;
- Установка завершена.
По умолчанию скомпилированные шаблоны сохраняются в каталоге APP/plugins/twig_view/tmp/views (не забыть проверить что каталог доступен для записи), но этот путь можно изменить :
- в bootstrap.php добавим define(‘TWIG_VIEW_CACHE’, ‘/your/cache/path’);
Плагин работает с файлами шаблона имеющими расширение «.tpl», таким образом можно совмещать использование стандартного шаблонизатора (файлы с расширением «.ctp») и Twig.
Пример как может выглядеть ваш default.tpl:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> {{ html.charset() }} <title>{{ 'CakePHP: the rapid development php framework'|trans }}: {{ title_for_layout }}</title> {{ html.meta('icon') }} {{ html.css('cake.generic') }} {{ scripts_for_layout }} </head> <body> <div id="container"> <div id="header"> <h1>{{ html.link('CakePHP: the rapid development php framework'|trans, 'http://cakephp.org') }}</h1> </div> <div id="content"> {{ session.flash() }} {{ content_for_layout }} </div> <div id="footer"> {{ html.image('cake.power.gif', [ 'alt': 'Powered by CakePHP'|trans, 'url': 'http://cakephp.org' ]) }} </div> </div> </body> </html>