Комментарии 25
Спасибо, некоторые идет полезные. Хотя чисто копировать для себя ничего не буду. Останавливайтесь подробнее на отличиях 3.0.х от 3.1.х
…или я допустил ошибки в коде…
Пока что заметил пару ошибок:
1. В методе контроллера before забыли указать parent::before()
2. В методе after класса Controller_Front заменить parent::before() на parent::after()
Но это скорее не ошибки, а просто опечатки
Это то, что позволит нам не писать в пределах одного контроллера в разных экшнах строки типа $this->content = View::factory('user/edit'); а заменить их на более компактные $this->content = View::factory('edit');Сомнительная полезность, это ладно. Но прятать путь вьюхи — это очень плохо. Таких «edit» может быть куча и у статей и у продуктов и у фотографий… И везде маньяк, который будет поддежривать ваш код, увидет сплошные factory('edit'). Такое может драматично закончиться.
Если Вы хотите в каком-то котроллере указывать полный путь вручную — достаточно в классе контроллера определить $view_path как FALSE — гляньте комментарий к этому свойству, я там описал возможные его значения. Однако в большинстве случаев, имена папок view и контроллеров совпадают и все view-файлы берутся из одной директории.
P.S. «Кохана», в переводе с украинского языка — «любимая» :)
НЛО прилетело и опубликовало эту надпись здесь
зачем плодить очередные холивары?
В контексте данной статьи я могу кой что подсказать :)
Начинал я с как и все со своего фреймворка, потом познакомился с CodeIginiter. Про свой естественно забыл. CodeIgniter через некоторое время начал ужасать своим внутренним кодом. Попробовал Kohana второй ветки — сделал 2 проекта и вышла третья версия. Почертыхался и переполз на неё. Устраивает всё, окромя сложности автоматизации рутинных процессов, описанных в данной статье. Попробовал yii — вообще сказка. Кодогенераторы спасают кучу времени, лейауты, описанные в данной статье — есть по дефолту, как и человеческая обработка ошибок. Теперь же использую для стандартных сайтов yii, а для проектов пооригинальнее (парсеры, статистика и что-либо сильно чувствительные ко времени работы) — Kohana. Один генерирует стандартный код, второй позволяет писать нестандартный но красивый и легко поддерживаемый код. Как то так :)
Начинал я с как и все со своего фреймворка, потом познакомился с CodeIginiter. Про свой естественно забыл. CodeIgniter через некоторое время начал ужасать своим внутренним кодом. Попробовал Kohana второй ветки — сделал 2 проекта и вышла третья версия. Почертыхался и переполз на неё. Устраивает всё, окромя сложности автоматизации рутинных процессов, описанных в данной статье. Попробовал yii — вообще сказка. Кодогенераторы спасают кучу времени, лейауты, описанные в данной статье — есть по дефолту, как и человеческая обработка ошибок. Теперь же использую для стандартных сайтов yii, а для проектов пооригинальнее (парсеры, статистика и что-либо сильно чувствительные ко времени работы) — Kohana. Один генерирует стандартный код, второй позволяет писать нестандартный но красивый и легко поддерживаемый код. Как то так :)
По поводу контроллера Controller_Front можно многое дополнить. Например, оберток на проект может быть много, в самом простом случае — две: для главной страницы и для внутренних.
Надо сделать возможность менять обертку прямо из пользовательского контроллера.
В нотации сказанного рекоммендую еще дополнить функционал контроллера Controller_Front некоторым методом add_component($name). Этот метод для обертки должен биндить в шаблон некий компонент. Например, на многих, но не всех обертках, может присутствовать блок «последние N новостей» в абсолютно одинаковом исполнении. Неплохо бы этот блок вынести из всех шаблонов в один скрипт и подключать вышеописанным методом
Надо сделать возможность менять обертку прямо из пользовательского контроллера.
В нотации сказанного рекоммендую еще дополнить функционал контроллера Controller_Front некоторым методом add_component($name). Этот метод для обертки должен биндить в шаблон некий компонент. Например, на многих, но не всех обертках, может присутствовать блок «последние N новостей» в абсолютно одинаковом исполнении. Неплохо бы этот блок вынести из всех шаблонов в один скрипт и подключать вышеописанным методом
Кстати, во фронт-контроллере можно удачно отдетектить браузер и для класса вью поставить глобальный префикс для путей (например, mobile/, pc/, tablet/ и т.д.)
Напишите аналогичную статью про Yii.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Kohana 3.0 — упрощаем себе жизнь