Kohana (ранее — «Голубое пламя») — PHP5 веб-фреймворк с открытым кодом, который использует архитектурную модель HMVC (Hierarchical Model View Controller — Иерархические Модель-Контроллер-Вид). Его цели — быть безопасным, лёгким и простым в использованииoverview [Kohana User Guide] .

Электронный журнал для веб-разработчиков PHP Inside признал Kohana «выбором редакции … за архитектуру, быстроту и сообщество»

История Проект Kohana был создан как ветвь PHP фреймворка CodeIgniter под именем Blue Flame. Главной причиной форка был переход к более открытой для общественности модели разработки, потому, что многие пользователи были недовольны скоростью разработки и исправления ошибок в CodeIgniter. Rick Ellis — создатель и владелец CodeIgniter — был счастлив видеть форк своего проекта, но помогать отказался; он подтолкнул новый проект к созданию собственной документации и посоветовал переименовать проект.Форум CodeIgniter , июнь 2007 г. В июле 2007 Blue Flame был переименован в Kohana для того, чтобы избежать проблем с авторскими правами в будущемKohana User Guide .

Название Kohana было выбрано, когда разработчики начали просматривать словари коренных американцев для того, чтобы выбрать слово, не нарушающее авторские права. Kohana на языке Сиу значит «быстрый».

В апреле 2014 года главный разработчик shadowhand заявил, что развитие проекта завершено, однако фреймворк продолжает разрабатываться и поддерживаться сообществом, а на официальном сайте продолжают выходить обновления.

4 февраля 2017 года проект был закрыт, главный разработчик "shadowhand" сообщил об этом на сайте фразой "Kohana is DEAD".

После закрытия проекта участники сообщества рассматривали различные варианты фреймворков для миграции, и как выяснилось, любая миграция была бы очень трудной. Поэтому участники сообщества создали форк проекта, который был назван Koseven. Koseven может работать в качестве замены для движка Kohana в проектах, которые до сих пор его используют. Основная цель проекта это исправление ошибок и поддержка новых версий PHP, в то время, как новый функционал рекомендуется добавлять через расширения.

Особенности Высокая безопасность Хорошо прокомментированный код и встроенные средства отладки и профилирования Прост в понимании Использует парадигму HMVC Поддержка UTF-8 Очень легко расширяем Распространяется по лицензии BSD

Технологии Строгое Объектно-ориентированное программирование, реализованное на PHP5 Простая абстракция базы данных c использованием SQL драйверов

Версии

Ветви разработки

В настоящее время параллельно разрабатываются три ветви: Ветвь 3.1.x. Последняя стабильная версия 3.1.5 (поддержка закончена). Ветвь 3.2.x. Последняя стабильная версия 3.2.2. (поддержка закончена). Ветвь 3.3.x. Рекомендуется для вновь разрабатываемых приложений. Текущая стабильная версия 3.3.0. Официальная поддержка до ноября 2013 г. В данной ветке продолжена переработка механизма «запрос-ответ» (Request/Response), особенно в части HMVC-запросов, изменения в роутинге (фильтры, см. #4388)

Ответвления от основных версий

KoSeven - Это элегантный объектно-ориентированный фреймворк HMVC с открытым исходным кодом, созданный командой добровольцев с использованием PHP7. Он быстрый, безопасный и компактный. KoSeven основан на уже не поддерживаемом разработчиками фреймворке Kohana 3.3.X и почти полностью совместим с ним. Сайт проекта https://koseven.dev/

Различия между версиями

Отличие Kohana от CodeIgniter

Строгое PHP5 ООП. Предполагает много плюсов: защита видимости, автоматическая подгрузка классов, перегрузка свойств и методов, интерфейсы, абстрактные классы, и применение паттерна одиночка (singleton). Kohana присоединилась к инициативе GoPHP5. Все релизы после 2.2 будут соответствовать этим правилам. Сохранен стиль CodeIgniter. Любой, кто использовал CodeIgniter, быстро поймет структуру Kohana. Управляется сообществом, не компанией. Kohana управляется дискуссиями, идеями и кодом сообщества. Разработчики Kohana из всех уголков света, каждый со своим собственным талантом. Это позволяет ускорить и сделать более гибким цикл разработки в котором реагирование на проблемы занимает часы, вместо дней или месяцев. Массивы GET, POST, COOKIE, и SESSION работают как предполагается. Kohana не ограничивает доступ к глобальным переменным, но предоставляет ту же фильтрацию и XSS защиту, что и CodeIgniter. Каскадные ресурсы, модули и наследование. Контроллеры, модели, библиотеки, хелперы, и виды могут быть загружены из любого места вашей системы, приложения, или модуля. Опции конфигурации наследуемы и могут динамически перезаписываться каждым приложением. Нет конфликтов пространств имён. Суффиксы классов, как «_Controller», используются для предотвращения конфликтов пространства имён. Это позволяет пользовательским контроллерам и моделям загружаться в одно и то же время. Настоящая автозагрузка классов. Действует для библиотек, контроллеров, моделей, и хелперов. Это не предзагрузка, а настоящая динамическая подгрузка классов при их инициализации. Хелперы — статические классы, не функции. Для примера, вместо использования «form_open()», вы можете использовать «form::open()». Связанность драйверов библиотек и API. Мощный обработчик событий. В Kohana события могут быть динамически добавлены, заменены или, даже, удалены. Это позволяет вносить значительные изменения в процесс работы Kohana, без модификации существующего системного кода.

Отличие Kohana 3 от Kohana 2.х Версии 2.х и 3 фреймворка Kohana следует рассматриватьKohana 3.x vs 2.x как разные фреймворки. Основные отличия версии 3 по сравнению с 2.х: Изменена организация файловой системы. Все классы выделены в каталог classes с подкаталогами model и controller для моделей и контроллеров соответственно. Библиотеки и хэлперы в Kohana 3.x хранятся вместе и по сути теперь не отличаются друг от друга. Единое правило именования классов. Имя любого класса должно соответствовать каталогу, в котором расположен файл этого класса (например, класс Model_Foo_Bar должен располагаться в файле classes\model\foo\bar.php). Часть функциональности ядра вынесена в отдельные модули (например, Database, ORM), которые можно отключать. Больший контроль над кодом, выполняемым до загрузки фреймворка. В связи с этим из ядра фреймворка были удалены события (Events) и хуки (Hooks). Новый механизм роутинга. Значительные изменения в слоях Database и ORM. Можно запустить любой контроллер и получить его вывод не только по HTTP, но и прямо из кода (указав роут), минуя протокол HTTP. Это позволяет вынести независимые блоки генерируемого контента в отдельные контроллеры, а также упрощает клиент-серверное взаимодействие в AJAX.

Отличие Kohana 3.1 от Kohana 3.0 В ветке 3.1.x произошло разделение объекта Request на отдельные классы Request и Response. Кроме того, валидация теперь также распределена между классами Validation (управление ходом валидации) и Valid (набор стандартных статических правил, аналогично классу Valid в Kohana 2.3.4). Более подробно об основных изменениях можно почитать в официальной документации.

Отличие Kohana 3.2 от Kohana 3.1 Основным изменением в ветке 3.2.x стала переработка механизма работы с конфигурационными файлами. Появились классы Kohana_Config_Reader и Kohana_Config_Writer, позволяющие на их основе реализовывать собственные драйверы для работы с различными источниками данных (файлы, СУБД и т. д.). Кроме того, HTTP-кеширование, появившееся в 3.1.x, было вынесено из класса Request в отдельный класс HTTP_Cache модуля Cache.

Отличие Kohana 3.3 от Kohana 3.2 В ветке 3.3.x было принято решение о переходе на стандарт PSR-0. В связи с этим все имена каталогов и файлов классов должны начинаться с большой буквы. Кроме того, осуществлен целый ряд изменений по повышению изоляции HMVC-запросов, обработке ошибок выполнения запросов и т. д. Добавлен новый модуль Minion для выполнения Cron-задач.

История версий

Цвет Описание Красный Старая версия; не поддерживается Жёлтый Старая версия; всё ещё поддерживается Зелёный Текущая версия Голубой Планируемая версия

Название Версия Кодовое имя Подверсия Дата выпуска Существенные измененияBlueFlame1.01.02007-05-31BlueFlame 1.0 Released! | CodeIgniter Forums Первоначальный релиз Форк от CodeIgniter 1.5.4 (предварительный релиз, ревизия 566 в svn)Kohana2.0Superlime2.02007-11-08changelog [Kohana User Guide] Код полностью переписан, нет старого унаследованного кода Прекращена совместимость с PHP4, ориентация на PHP5 Полностью объектно-ориентированный программный каркас В поставку включены модули Концепция каскадных ресурсов2.1Schneefeier 2.1.02008-02-05 Новые библиотеки: Cache, Image, ORM, Payment Новые хелперы: num, expires, email, html::link(), html::breadcrumb(), arr::binary_search(), valid::standard_text(), text::widont(); Новые модули: Auth & Forge; драйверы PostgreSQL и MySQLi Компрессия вывода gzip, исправления ошибок и изменения в APIchangelog:2.1 [Kohana User Guide] 2.1.12008-02-06 Исправлена ошибка расширения хелперов Добавлены английский (UK), немецкий и македонский языкиchangelog:2.1.1 [Kohana User Guide] 2.1.22008-06-10 Добавлена константа KOHANA_IS_WIN, которая сигнализирует о работе на платформе Windows Многочисленные исправления ошибокchangelog:2.1.2 [Kohana User Guide] 2.2Efímera 2.2.02008-08-08 Новые библиотеки (Captcha) Новые хелперы (upload, format, и т. д.) Новые атрибуты конфигурации, Новые драйверы (MSSQL, PayPal Pro) Чистка кода, оптимизация и исправления ошибокchangelog:2.2 [Kohana User Guide] 2.3Kernachtig 2.3.02008-12-20 Новый роутер Новая библиотека баз данных (object_db) 2.3.12009 2.3.22009Aegolius 2.3.32009-05-31Buteo Regalis 2.3.42009-06-05 2.4- 2.4-RC12009-11-19 2.4 Release Candidate 1 Released [Kohana Forums]Планировалась как логичное продолжение ветки 2.3, но ввиду выпуска версии 3.0 так и не была доведена до стабильного релиза. 3.0renaissance 3.0.02009-09-17 Kohana v3.0 Released! [Kohana Forums] Код полностью переписан. Нет совместимости с приложениями, написанными для 2.х Архитектура соответствует шаблону проектирования HMVC Добавлена новая функциональность ядра Все хелперы и библиотеки являются классами в папке classes (без каталогов helpers/libraries) 3.0.12009-10-16 Kohana v3.0.1 Released! [Kohana Forums] 3.0.22009-11-21 Kohana v3.0.2 Released! [Kohana Forums] 3.0.32009-11-23 Kohana v3.0.3 Released! [Kohana Forums]wyau cwningen 3.0.42010-04-04 Kohana v3.0.4 Released! [Kohana Forums] 3.0.52010-05-25 Kohana v3.0.5 Released! [Kohana Forums]sumar hiti 3.0.62010-06-07 Kohana v3.0.6 Released! [Kohana Forums]hattrick 3.0.72010-07-11 Kohana v3.0.7 Released! [Kohana Forums]großen jäger 3.0.82010-09-22 Kohana v3.0.8 Released! [Kohana Forums]nya året 3.0.92010-12-30 Kohana v3.0.9 Released! [Kohana Forums]Hierofalco 3.0.102011-03-13 Kohana 3.1.2 & Kohana 3.0.10 Released! [Kohana Forums]vespertinus 3.0.112011-05-02 Kohana 3.1.3 & Kohana 3.0.11 Released! [Kohana Forums]cuvierii 3.0.122011-07-24 Kohana 3.2.0, 3.1.4, 3.0.12 Released! [Kohana Forums] 3.1merle 3.1.02011-02-07 Kohana v3.1.0 Released! [Kohana Forums] Усовершенствована работа Request/Response В валидацию добавлены контексты Удален модуль Paginationaesalon 3.1.12011-02-16Hirondelle 3.1.22011-04-14araea 3.1.32011-05-02fasciinucha 3.1.42011-07-24biarmicus 3.1.52012-08-31 Kohana v3.2.1 (and 3.1.5) released! [Kohana Forums] 3.2Kolibri 3.2.02011-07-24 Дальнейшая доработка механизма Request/Response Изменен принцип работы с конфигурационными файлами (драйверы на основе классов Kohana_Config_Reader и Kohana_Config_Writer)Milvago 3.2.12012-08-27hypoleucos 3.2.22012-08-31 Kohana v3.2.2 Released! [Kohana Forums] 3.3badius 3.3.02012-10-23 Kohana 3.3.0 Released! [Kohana Forums] Переход на стандарт PSR-0 Повышение изолированности HMVC-запросов (Request) Более удобная система обработки исключений Добавлен модуль Minion а также модуль phpunit

Примечания

Ссылки Официальный сайт Kohana Web Framework Документация для различных версий Официальный форум Kohana Web Framework