16 Ноя
Что-то совсем замотался я, простите друзья.
Начал потихоньку изучать php фрейморк Kohana. Решил не останавливаться на старых версиях, а наблюдать за развитием Kohana 3.
Приоритетной задачей стал выбор шаблонизатора. Использовать стандартный подход не хотелось — не нравится мне мешать php и html. Опыта работы с шаблонизаторами у меня не много, но использование Smarty меня полностью устраивает. Решение проблемы подключения Smarty к Kohana найдено
Далее небольшой произвольный перевод мануала.
1. Необходимо . Последние изменения смотрите на страничке проекта. Распакуйте архив прямо в главную папку, таким образом папка с модулем окажется где нужно
, а точнее в modules/.
2. Переместить файл конфигурации Smarty в папку настроек вашего приложения application/config/ *не обязательно
Теперь вы можете настроить шаблонизатор исходя из ваших потребностей
<?php defined('SYSPATH') OR die('No direct access allowed.'); return array ( 'version' => '3', //either version 2.6 or 3 'cache' => false, 'debug' => false, 'security' => false, 'force_compile' => false, 'error_reporting' => null, 'php_handling' => 0, //a number between 0 and 3, chechk smarty for SMARTY_PHP_* constants 'template_dir' => APPPATH.'view'.DIRECTORY_SEPARATOR, 'compile_dir' => MODPATH.'smarty'.DIRECTORY_SEPARATOR.'compile'.DIRECTORY_SEPARATOR, 'plugin_dir' => array(), //you can put in multiple paths for smarty to load plugins from 'cache_dir' => APPPATH.'cache'.DIRECTORY_SEPARATOR, 'config_dir' => MODPATH.'smarty'.DIRECTORY_SEPARATOR.'template_config'.DIRECTORY_SEPARATOR, 'include_before' => array(), 'include_after' => array(), );
3. Откройте файл bootstrap.php и добавьте Smarty к списку модулей.
<?php /** * Enable modules. Modules are referenced by a relative or absolute path. */ Kohana::modules(array( // 'auth' => MODPATH.'auth', // Basic authentication // 'codebench' => MODPATH.'codebench', // Benchmarking tool //'database' => MODPATH.'database', // Database access // 'image' => MODPATH.'image', // Image manipulation //'orm' => MODPATH.'orm', // Object Relationship Mapping // 'pagination' => MODPATH.'pagination', // Paging of results //'userguide' => MODPATH.'userguide', // User guide and API documentation 'smarty' => MODPATH.'smarty', // smarty template engine )); ?>
4. Smarty готов к использованию, нужно проставить лишь права доступа на папку для компиляции шаблонов.
Использование Smarty
Простейший пример:
<?php defined('SYSPATH') or die('No direct script access.'); class Controller_Welcome extends Controller_Smarty {} ?>
Возможно использование двух различных способов работы со Smarty.
1. Auto render
Стандартный подход, как с Kohana::View.
<?php defined('SYSPATH') or die('No direct script access.'); class Controller_Welcome extends Controller_Smarty { /** * @var string page template */ public $template = "welcome.tpl"; } ?></php>
Использование переменных в контроллере.
<?php defined('SYSPATH') or die('No direct script access.'); class Controller_Welcome extends Controller_Smarty { /** * @var string page template */ public $template = "welcome.tpl"; public function action_index() { $this->view->assign('intro', 'Hello world!'); } } ?>
2. Loose
Данный способ позволяет использовать разные шаблоны для каждого действия вашего контроллера.
Пример:
<?php defined('SYSPATH') or die('No direct script access.'); class Controller_Welcome extends Controller_Smarty { public $auto_render = FALSE; public function action_index() { $this->view->assign('intro', 'Hello world!'); $this->request->response = $this->view->fetch('welcome.tpl'); } } ?>
Немного поэкспериментировав с использованием Smarty я довольно быстро во всем разобрался, без каких либо достаточных знаний Kohana.
Буду и дальше продолжать изучение этого замечательного фреймворка
2 комментария для "Модуль Smarty для Kohana 3"
А ты ничо не забыл?
Ну вроде все о чем забыл — сделал) если нет напомни))
Ваш Комментарий