Наткнувшись однажды на пост Как возникают автомобильные пробки, решил подробнее посмотреть, что же из себя представляет Slim Micro Framework и как я могу его использовать в своих проектах.
Первым делом надо было выбрать шаблонизатор. После недолгих поисков, выбор пал на Twig и теперь можно приступать к интеграции.
Суть интеграции заключается в подключении дополнения Slim Framework Extras, реализующего функционал для интеграции с несколькими популярными шаблонизаторами, в частности с Twig, через расширение базового класса Slim_View, написанное разработчиками фреймворка.
Теперь необходимо включить код в проект, файл index.php (расположение и имена файлов могут отличаться):
Передача параметров в View осталась неизменной. Пример роутера и callback-функции для него, использованного в приложении (код местами упрощен):
Пример части кода из шаблона template.php:
Материалы по теме:
Простую реализацию связки Slim Framework Extras + Twig можно посмотреть тут Постеры на тему АСОИУ. При необходимости готов продемонстрировать весь код (всего сто строк описывающих логику приложения).
Заранее приношу извинения за возможные допущенные ошибки и упущения при написании поста. Это моя первая статья. На освоение материала ушло всего пару дней, поэтому сочту за любезность любые полезные ссылки на материалы и советы по теме. Спасибо.
Первым делом надо было выбрать шаблонизатор. После недолгих поисков, выбор пал на 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 можно посмотреть тут Постеры на тему АСОИУ. При необходимости готов продемонстрировать весь код (всего сто строк описывающих логику приложения).
Заранее приношу извинения за возможные допущенные ошибки и упущения при написании поста. Это моя первая статья. На освоение материала ушло всего пару дней, поэтому сочту за любезность любые полезные ссылки на материалы и советы по теме. Спасибо.
