UNIX that simple.

Краткая инструкция по интеграции шаблонизатора Twig и Slim Micro Framework

Опубликовано: 21 мар 2014

Наткнувшись однажды на пост Как возникают автомобильные пробки, решил подробнее посмотреть, что же из себя представляет Slim Micro Framework и как я могу его использовать в своих проектах.

Первым делом надо было выбрать шаблонизатор. После недолгих поисков, выбор пал на Twig и теперь можно приступать к интеграции.

Суть интеграции заключается в подключении дополнения Slim Framework Extras, реализующего функционал для интеграции с несколькими популярными шаблонизаторами, в частности с Twig, через расширение базового класса Slim_View, написанное разработчиками фреймворка.

Теперь необходимо включить код в проект, файл index.php (расположение и имена файлов могут отличаться):

//Require the Slim Framework
require_once 'Slim/Slim.php';
//http://twig.sensiolabs.org/doc/intro.html#basic-api-usage
require_once 'thirdparty/Twig/Autoloader.php';
Twig_Autoloader::register();
//Require the custom View
require_once 'views/TwigView.php';
//Init Slim app with the custom View
$app = new Slim(array(
    'view' => new TwigView()
));
$app->run();

Передача параметров в View осталась неизменной. Пример роутера и callback-функции для него, использованного в приложении (код местами упрощен):

// Определяем роутер
$app->get('/:id', 'show_gallery');
/**
 * Callback-функция для роутера 
 * 
 * @global Slim $app
 * @param <type> $photo_id 
 */
function show_gallery( $photo_id ) {
  global $app;
  // Ваш код
  ...
  // Передаем параметры в шаблон
  $app->view()->appendData( array( ‘photo' => $photo ) );
  // Отрисовываем шаблон
  // по умолчанию файлы шаблонов находятся в папке /templates в корне вашего проекта
  $app->render('template.php');
}


Пример части кода из шаблона template.php: 

<div class="container">
  <a href="{{ photo.l_url }}" class="ajax" title="{{ photo.title }}">
    <img class="current" src="{{ photo.m_url }}" alt="{{ photo.title }}" />
  </a>
</div>


Материалы по теме: 

Простую реализацию связки Slim Framework Extras + Twig можно посмотреть тут Постеры на тему АСОИУ. При необходимости готов продемонстрировать весь код (всего сто строк описывающих логику приложения).

Заранее приношу извинения за возможные допущенные ошибки и упущения при написании поста. Это моя первая статья. На освоение материала ушло всего пару дней, поэтому сочту за любезность любые полезные ссылки на материалы и советы по теме. Спасибо.

Back to Homepage