Kohana PHP Переходим на Kohana 3. Часть 1

Если вы знакомы с PHP-фреймворком Kohana PHP и следите за его изменениями, то вам наверно уже известно, что на финишную прямую уже вышла 3-я версия этого замечательного фреймворка (на данный момент доступнен Release Candidate 2.1) и в ближайшее время планируется финальная версия. Kohana 3 - это сильно модифицированная версия Kohana 2, поэтому все приложения, работающие на 2-й версии при переходе на 3-ю потребуют немалых изменений кода.

Эта статья призвана описать произошедшие изменения в фреймворке и помочь разобраться с новым API. Так как финальная версия API еще не "зафиксирована", то некоторое из того что здесь описано, может измениться к моменту релиза. Итак, чем же отличается API 2-й версии Kohana от 3-й?

HMVC vs. MVC

В Kohana 3 представлен совершенно новый шаблон проектирования Hierarchical-Model-View-Controller (Иерархический-Модель-Вид-Контроллер). Этот шаблон похож на Model-View-Controller (Модель-Вид-Контроллер), который применен в Kohana 2.x, с некоторыми изменениями. В предыдущих версиях Коханы для обработки запроса использовался router (маршрутизатор), который анализировал запрос и вызывал нужный метод соответствующего контроллера и передавал ему необходимые параметры. Контроллер обрабатывал запрос и передавал ответ клиенту, все это выполнялось "прямолинейно" по четко определенной схеме.

В HMVC-среде основной запрос может порождать другие запросы с помощью нового класса Request. Это очень мощная и гибкая система, которая позволяет создавать приложение в очень модульном стиле. Но чтобы использовать потенциал HMVC на полную можность, необходимо понимать как он устроен, поэтому я рекомендую ознакомиться с материалами по этой теме.

Надо заметить, что использование HMVC в Kohana3 совсем необязательно, и традиционный шаблон MVC будет работать так же как и в предыдущих версиях.

Начальная загрузка приложения (Bootstrap), конфигурация и события

Bootstrap-файл приложения был перенесен из каталога system в каталог application. Сделано это было по той причине, что в этом файле конфигурируется большинство настроек приложения, в то время как в предыдущих версиях (2.x) основные настройки задавались в главном файле настроек config.php. Людям, знакомым с Zend Framework, известна такая практика.

Bootstrap-файл отвечает за настройку рабочей среды Kohana, определение загрузчика (autoloader) по умолчанию, установки параметров кеширования, кодировки, профилирования и других системных настроек, и, наконец, обработка запроса.

Разработчики могут вносить изменения в Bootstrap-файл, изменяя логику работы приложения. Это дает очень мощный слой конфигурации приложения, полностью контролирующий внутреннее поведение приложения. Кроме того, модули также имеют собственные Bootstrap-файлы, что позволяет им изменять настройки под свои нужды.

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

Структура классов

В Kohana 3 изменена структура классов, поэтому приложения, портированные из версии 2.x определенно потребуют изменений в этом плане. Больше нет старых папок libraries, helpers и controllers. Вместо них теперь используется папка classes.

Способ, которым Kohana загружает файлы также был изменен. Все классы теперь находятся внутки папки /classes в каталогах system, modules и application. Используется новое соглашение об именовании классов, которое упрощает идентификацию и определение местоположения файлов классов. Классы по прежнему используют знак подчеркивания (_) в названии, но немного по-другому.

Теперь классы разделяются больше по их местоположению, нежели по типу. Класс контроллера, к примеру, изменился с Welcome_Controller на Controller_Welcome. Это потому что контроллер Welcome находится в каталоге classes/controller (application/classes/controller/welcome.php). Все основные файлы фреймворка имеют префикс Kohana (например, system/classes/kohana/validate.php и т.д. называется Kohana_Validate). Традиционные классы находятся непосредственно в папке classes, что позволяет использовать Validate::factory() вместо Kohana_Validate::factory(), хотя второй вариант тоже будет работать. Если вы внимательно посмотрите на содержимое каталога system и названия классов, находящихся в ней, вы довольно быстро поймете принцип именования классов. В Zend Framework используется такой же принцип, поэтому пользователи этого фреймворка уже знакомы с этим.

Хелперы (helpers) и библиотеки (libraries) остались, но они были приведены к более унифицированному виду. Хороший пример — библиотека Validation (system/libraries/Validation.php) и хелпер valid (system/helpers/valid.php). Вместо них теперь существует единый класс Validate, в который включены методы их обоих классов — статические методы хелпера и методы библиотеки.

Все контроллеры теперь находятся в папке controller (application/classes/controller) в каталоге приложения.

В следующей части будет рассказано о новом классе Request и классе Controller

  18 августа 2009  |    Kohana PHP  |    Spider
  Kohana, php, фреймворк

Комментарии (6)

Chode | 8 ноября 2009, 15:20
Спасибо за перевод) Было интересно почитать новичку, как раз ищу информацию о Kohana 3
FlaBla | 18 ноября 2009, 17:54
Спасибо!
вот только начал изучать этот фреймворк, что-то узнал для себя нового
Spider | 20 ноября 2009, 18:57
Постараюсь и в дальнейшем публиковать статьи про фреймворк Kohana, тем более, что третья версия мне действительно очень понравилась своими возможностями и продуманной архитектурой.
ALex | 18 января 2010, 14:16
Спасибо огромное!
 
Продолжайте в том-же духе, будем следить с нетерпением!
Яков | 23 апреля 2010, 18:37
Спасибо, я тоже только приступил к изучениею Kohana 3, давно хотел поработать с HMVC фреймворком.
Иван | 5 июля 2010, 20:20
Когда будет продолжение?
Очень интересует "В следующей части будет рассказано о новом классе Request и классе Controller".
 
За статью спасибо. 5+.

Добавить комментарий

Ваше имя: *
Ваш e-mail: * (не публикуется)
Адрес сайта:
Комментарий: *
полужирный курсив курсив курсив вставить ссылку

  

Новости сайта в RSS

Категории

Статьи

Новые Популярные Комментируемые

Облако меток

Разное

Продажа авто Воронеж, покупка авто в Воронеже, авто с пробегом в Воронеже