Зачем использовать шаблоны в Kohana? - PullRequest
1 голос
/ 03 ноября 2011

Я не понимаю цели использования шаблонов в Kohana.Я не вижу почти никакой разницы в процессе построения представления с контроллером шаблона по сравнению с обычным контроллером, за исключением того, что контроллер шаблона привязан к данному шаблону и поэтому менее гибок.Каковы преимущества?

Вид здания с обычным контроллером:

Class Controller_Hello extends Controller
{
    public function action_index()
    {   
        $view = View::factory('page');
        $view->page_title = 'My Hello App';
        $view->content = 'hello, world!';
        $view->sidebar = View::factory('parts/sidebar');
        $this->response->body($view);
    }
}

Вид здания с контроллером шаблона:

Class Controller_Hello extends Controller_Template
{
    public $template = 'page';

    public function action_index()
    {   
        $this->template->page_title = 'My Hello App';
        $this->template->content = 'hello, world!';
        $this->template->sidebar = View::factory('parts/sidebar');
    }
}

Ответы [ 2 ]

3 голосов
/ 04 ноября 2011

Controller_Template - это всего лишь пример того, как вы можете реализовать свою собственную систему шаблонов.Это не готовое к использованию решение (по крайней мере, для моих проектов обычно).Проверьте этот контроллер (это также не готовое к использованию решение, но, возможно, оно поможет вам понять смысл расширения различных контроллеров для разных целей): http://pastie.org/2563595

0 голосов
/ 04 ноября 2011

Я уверен, что есть и другие, возможно, лучшие решения для систем шаблонов. Но почему я использую шаблоны в Kohana?

Подумайте о нескольких страницах, основанных на одной схеме макета / дизайна. Поэтому я создаю шаблонный контроллер с использованием определенного представления, определяя макет / дизайн, определяя содержимое, области заголовка и нижнего колонтитула. В контроллере шаблонов я загружаю файлы CSS и файлы сценариев, устанавливая заголовок и мета-значения веб-сайта, потому что каждый сайт использует эти файлы CSS / сценариев с одинаковыми мета-значениями и заголовком.

Таким образом, в каждом контроллере, расширяющем контроллер шаблонов, мне не нужно заново загружать файлы CSS / сценариев, устанавливать мета-значения, заголовки и т. Д. Но я могу изменить все эти значения, возможно, добавить файл CSS только для один сайт.

Может быть, все упомянутые сайты имеют одинаковый нижний и / или верхний колонтитул: я назначаю представление верхнего / нижнего колонтитула для шаблона в контроллере шаблона, поэтому мне не нужно делать это во всех контроллерах, расширяющих контроллер шаблона. Или все действия в одном контроллере имеют одинаковый верхний и нижний колонтитулы, поэтому я назначаю несколько верхних и нижних колонтитулов в функции before () контроллера ...

Для меня шаблоны в кохане - хорошая утилита для создания небольших веб-приложений.

...