Frameworks.suFrameworks.su Шпаргалка вебмастера

  • Главная
  • Framework Kohana
  • PHP
  • Javascript
  • CSS
  • Сервисы
    • Генератор паролей
  • Контакты
Главная / PHP / Framework Kohana / Подключения шаблонизатора Twig в Kohana 3.3

Подключения шаблонизатора Twig в Kohana 3.3

23.07.2014 5 7461

При написании проекта на Framework Kohana мне потребовалось подключить шаблонизатор Twig.

Для начала установим в Kohana модуль для работы с шаблонизатором - я использую этот модуль. Разворачиваем все это дело в кохану в директотрию modules. Twig разворачиваем в vendor - таким образом получется, что файлы шаблонизатора лежат по пути modules\twig\vendor\Twig\lib\Twig\.

В файле application/bootstrap.php для подключения модуля нужно добавить строчку:

Kohana::modules(array(
    'twig' => MODPATH.'twig'.
))

Всё, можно использовать в контроллерах так:

$this->response->body( Twig::factory('template_file') );

Здесь template_file — файл шаблона, например main.twig,  который ищется в application/views или views всех модулей. Где искать файлы шаблонов и расширение шаблонов указывается в настройках Twig (см. ниже).

Если же понадобится добавить свою функцию в Twig, то сделать это можно так:

В папке Extension создаем файл с нашим расширением, для примера добавим функцию  unserialize(). Обратите внимание на имя класса - оно повторяет путь.

class Twig_Extension_Unserializer extends Twig_Extension {
    
    //здесь мы и определяем нужную нам функцию
    public function getFunctions() {
        return array('unserializer' => new Twig_Function_Function('unserialize', array()));
    }

    //обязательно
    public function getName() {
        return 'unserializer';
    }   
}

Копируем файл modules\twig\config\twig.php в application\config\twig.php и настраиваем Twig:

return array
(
    'environment' => array
    (
        'debug'               => FALSE,
        'trim_blocks'         => FALSE,
        'charset'             => 'utf-8',
        'base_template_class' => 'Twig_Template',
        'cache'               => APPPATH.'cache/twig',
        'auto_reload'         => TRUE,
        'strict_variables'    => FALSE,
        'autoescape'          => FALSE,
        'optimizations'       => -1,
    ),
    //*************
    'extensions' => array
    (
    // Добавляем нашу функцию unserializer
    'Twig_Extension_Unserializer',
    ),
    //*************
    'templates'      => APPPATH.'views',
    'suffix'         => 'twig',
    'context_object' => TRUE,
);

Все готово, можно использовать. В шаблоне передается массив записей, поле записи content было сериализировано при записи в базу:

{% block main_content %}
    {% for item in posts %}
        {% set a = unserializer(item.content) %}
    {% endfor %}
{% endblock %}

Но этом все.

Теги:
  • Framework Kohana
  • Шаблонизатор Twig

Комментарии

  1. Stas
    Stas
    04.07.2018 10:54

    Мне больше нравится как работает с twig-файлами Codelobster - http://www.codelobster.com/twig.html

    Ответить
  2. Serhii
    Serhii
    30.03.2017 11:52

    Почему то не работает пишет при подключении в контроллере
    $this->response->body( Twig::factory('template_file') );
    пишет ошибку что не может найти класс Twig

    Ответить
    • Администратор
      Администратор
      30.03.2017 14:15

      Возможно вы забыли подключить его в bootstrap.php, либо вы его скопировали в другую папку.
      Проверьте может у вас константа MODPATH не на тот каталог указывает

      Ответить
    • WinterSilence
      WinterSilence
      19.04.2016 13:42

      Зачем изобретать велосипед? https://github.com/WinterSilence/kohana-tpl

      Ответить
    • Koh
      Koh
      25.02.2016 16:51

      Сделал так, выдало ошибку :

      ErrorException [ Fatal Error ]: Class 'Twig_Autoloader' not found
      MODPATH\kohana-twig\classes\Kohana\Twig.php [ 35 ]
      30 * @throws Kohana_Exception
      31 * @return bool
      32 */
      33 public static function init()
      34 {
      35 Twig_Autoloader::register();

      В чем может быть дело?

      Ответить

    Оставить комментарий Отмена

    *

    *

    *

    *

    Категории

    • PHP
      • Framework Kohana
    • Javascript
    • CSS
    • Администрирование

    Теги

    Framework Kohana Пример jQuery Уроки CRON Установка и настройка Backup CSS3 Валидация API Bash Cache Captcha i18n Linux

    Авторизация

    • Забыли пароль?
    • Регистрация

    Популярные статьи

    • Находим расстояние до ближайших станций метро

      Находим расстояние до ближайших станций метро

      17.02.2017 102981
    • Регистрация и авторизация пользователей. Модуль Auth в Kohana 3.3.x

      Регистрация и авторизация пользователей. Модуль Auth в Kohana 3.3.x

      02.07.2014 44644
    • Собственная система лайков на PHP и JQuery

      Собственная система лайков на PHP и JQuery

      06.04.2015 33241
    • Javascript — сумма прописью

      Javascript — сумма прописью

      07.07.2014 23090
    • Cross-domain ajax с помощью jQuery

      Cross-domain ajax с помощью jQuery

      24.04.2015 19963
    Copyright © 2014-2025 Frameworks.su. Все права защищены.