Kohana — является объекто-ориентированным HMVC
веб-фреймворк с открытым исходным кодом, написанным на PHP5
. Kohana распространяется только по лицензионному соглашению BSD, что предоставляет вам полное право легально применять ее под любые коммерческие проекты.
Что же делает хорошим фреймворком?
Расширяемость: при помощи удобной каскадной файловой системы вы с легкостью можете целиком изменить функционал всей системы, легкая установка: отсутствие инсталляторов и больших конфигов, а наличие встроенного отладчика ошибок позволяет довольно быстро отслеживать любые ошибки в приложениях. Вы сможете с легкостью профилировать, налаживать код и искать уязвимые места, в приложениях применяя стандартные утилиты.
Ну а для защиты приложения, Kohana предлагаются такие утилиты как валидация введенных данных, защита от изменения cookie и от SQL-инъекций.
Kohana 3 представляет собой файловую систему с иерархической структурой каталогов. Любой файл, подгружаемый системой при помощи Koha
na
, по очереди ищется в таких каталогах:
- Папка (
application
). Kohana начинает поиск файла в папке вашего приложения. - Затем в папке каждого из модулей (
modules
). После этого, файл ищется в каждой папке подключенного через Kohana
модуля (в порядке их определения). - Системная папка (
system
). Ну и в последнюю очередь, она ищет файл в своей системной папке.
Какие же преимущества дает такая файловая структура? Она позволяет расширить функционал системы с помощью дополнительного модуля, не изменяя свой системный каталог (тем самым облегчая обновление kohana в дальнейшем) — необходимо только создать файл в директории с таким же именем выше по приоритету, чтобы переопределить файл:
К примеру, если у нас есть файл в system/views/kohana/error.php
и application/views/kohana/error.php
, то в момент подключения файла views/kohana/error
подключен будет тот, у которого папка по приоритету находится выше (в нашем случае это — application/views/kohana/error.php
)
Абсолютно все папки приложения Kohana, модулей и системы зачастую содержат такие директории:
classes/
. Тут находятся классы, что нуждаются в автозагрузке — обычно это модели и контроллеры.config/
. В данной директории сберегаются конфигурационные файлы, что загружаются через Kohana
. Если структура каскадная, то конфигурационные файлы не заменяются, а объединяются.i18n/
. В этой директории хранятся файлы перевода. Которые, как и файлы конфигурации, объединяются, а не заменяются.views/
. Данная директория содержит файлы, что требуются для генерации представлений.