Меню
Главная
Случайная статья
Настройки
|
Kohana (ранее англ. Blue Flame — «Голубое пламя») — PHP5 веб-фреймворк с открытым кодом, который использует архитектурную модель HMVC (Hierarchical Model View Controller — Иерархические Модель-Контроллер-Вид). Его цели — быть безопасным, лёгким и простым в использовании[3].
Электронный журнал для веб-разработчиков PHP Inside признал Kohana «выбором редакции … за архитектуру, быстроту и сообщество»[4]
Содержание
История
Проект Kohana был создан как ветвь PHP фреймворка CodeIgniter под именем Blue Flame[5]. Главной причиной форка был переход к более открытой для общественности модели разработки, потому, что многие пользователи были недовольны скоростью разработки и исправления ошибок в CodeIgniter. Rick Ellis — создатель и владелец CodeIgniter — был счастлив видеть форк своего проекта, но помогать отказался; он подтолкнул новый проект к созданию собственной документации и посоветовал переименовать проект.[6] В июле 2007 Blue Flame был переименован в Kohana для того, чтобы избежать проблем с авторскими правами в будущем[7].
Название Kohana было выбрано, когда разработчики начали просматривать словари коренных американцев для того, чтобы выбрать слово, не нарушающее авторские права. Kohana на языке Сиу значит «быстрый».
В апреле 2014 года главный разработчик shadowhand заявил,[8] что развитие проекта завершено, однако фреймворк продолжает разрабатываться и поддерживаться сообществом[9], а на официальном сайте продолжают выходить обновления.
4 февраля 2017 года проект был закрыт, главный разработчик "shadowhand" сообщил об этом на сайте фразой "Kohana is DEAD".
После закрытия проекта участники сообщества рассматривали различные варианты фреймворков для миграции, и как выяснилось, любая миграция была бы очень трудной. Поэтому участники сообщества создали форк проекта, который был назван Koseven. Koseven может работать в качестве замены для движка Kohana в проектах, которые до сих пор его используют. Основная цель проекта это исправление ошибок и поддержка новых версий PHP, в то время, как новый функционал рекомендуется добавлять через расширения.[10]
Особенности- Высокая безопасность
- Хорошо прокомментированный код и встроенные средства отладки и профилирования
- Прост в понимании
- Использует парадигму HMVC
- Поддержка UTF-8
- Очень легко расширяем
- Распространяется по лицензии BSD
Технологии
Версии
Ветви разработки
В настоящее время параллельно разрабатываются три ветви[11]:
- Ветвь 3.1.x. Последняя стабильная версия 3.1.5 (поддержка закончена).
- Ветвь 3.2.x. Последняя стабильная версия 3.2.2. (поддержка закончена).
- Ветвь 3.3.x. Рекомендуется для вновь разрабатываемых приложений[11]. Текущая стабильная версия 3.3.0. Официальная поддержка до ноября 2013 г. В данной ветке продолжена переработка механизма «запрос-ответ» (Request/Response), особенно в части HMVC-запросов, изменения в роутинге (фильтры, см. #4388 (англ.))
Ответвления от основных версий- KoSeven - Это элегантный объектно-ориентированный фреймворк HMVC с открытым исходным кодом, созданный командой добровольцев с использованием PHP7. Он быстрый, безопасный и компактный. KoSeven основан на уже не поддерживаемом разработчиками фреймворке Kohana 3.3.X и почти полностью совместим с ним. Сайт проекта https://koseven.dev/
Различия между версиями- Строгое 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, без модификации существующего системного кода.
Версии 2.х и 3 фреймворка Kohana следует рассматривать[12] как разные фреймворки. Основные отличия версии 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[13][14].
В ветке 3.1.x произошло разделение объекта Request на отдельные классы Request и Response. Кроме того, валидация теперь также распределена между классами Validation (управление ходом валидации) и Valid (набор стандартных статических правил, аналогично классу Valid в Kohana 2.3.4). Более подробно об основных изменениях можно почитать в официальной документации (англ.).
Основным изменением в ветке 3.2.x стала переработка механизма работы с конфигурационными файлами. Появились классы Kohana_Config_Reader и Kohana_Config_Writer, позволяющие на их основе реализовывать собственные драйверы для работы с различными источниками данных (файлы, СУБД и т. д.). Кроме того, HTTP-кеширование, появившееся в 3.1.x, было вынесено из класса Request в отдельный класс HTTP_Cache модуля Cache.
В ветке 3.3.x было принято решение о переходе на стандарт PSR-0 (англ.). В связи с этим все имена каталогов и файлов классов должны начинаться с большой буквы. Кроме того, осуществлен целый ряд изменений по повышению изоляции HMVC-запросов, обработке ошибок выполнения запросов и т. д. Добавлен новый модуль Minion для выполнения Cron-задач.
История версий
Цвет
|
Описание
|
Красный
|
Старая версия; не поддерживается
|
Жёлтый
|
Старая версия; всё ещё поддерживается
|
Зелёный
|
Текущая версия
|
Голубой
|
Планируемая версия
|
Название
|
Версия
|
Кодовое имя
|
Подверсия
|
Дата выпуска
|
Существенные изменения
|
BlueFlame
|
1.0
|
|
1.0
|
2007-05-31[15]
|
|
Kohana
|
2.0
|
Superlime
|
2.0
|
2007-11-08[16]
|
- Код полностью переписан, нет старого унаследованного кода[7][16]
- Прекращена совместимость с PHP4, ориентация на PHP5[7]
- Полностью объектно-ориентированный программный каркас[7]
- В поставку включены модули[7]
- Концепция каскадных ресурсов[7]
|
2.1
|
Schneefeier
|
2.1.0
|
2008-02-05[16]
|
- Новые библиотеки: Cache, Image, ORM, Payment
- Новые хелперы: num, expires, email, html::link(), html::breadcrumb(), arr::binary_search(), valid::standard_text(), text::widont();
- Новые модули: Auth & Forge; драйверы PostgreSQL и MySQLi
- Компрессия вывода gzip, исправления ошибок и изменения в API[17]
|
2.1.1
|
2008-02-06[16]
|
- Исправлена ошибка расширения хелперов
- Добавлены английский (UK), немецкий и македонский языки[18]
|
2.1.2
|
2008-06-10
|
- Добавлена константа KOHANA_IS_WIN, которая сигнализирует о работе на платформе Windows
- Многочисленные исправления ошибок[19]
|
2.2
|
Efmera
|
2.2.0
|
2008-08-08
|
- Новые библиотеки (Captcha)
- Новые хелперы (upload, format, и т. д.)
- Новые атрибуты конфигурации,
- Новые драйверы (MSSQL, PayPal Pro)
- Чистка кода, оптимизация и исправления ошибок[20]
|
2.3
|
Kernachtig
|
2.3.0
|
2008-12-20
|
- Новый роутер
- Новая библиотека баз данных (object_db)
|
2.3.1
|
2009
|
2.3.2
|
2009
|
Aegolius
|
2.3.3
|
2009-05-31
|
Buteo Regalis
|
2.3.4
|
2009-06-05
|
2.4
|
-
|
2.4-RC1
|
2009-11-19[21]
|
Планировалась как логичное продолжение ветки 2.3, но ввиду выпуска версии 3.0 так и не была доведена до стабильного релиза.
|
3.0
|
renaissance
|
3.0.0
|
2009-09-17[22]
|
- Код полностью переписан. Нет совместимости с приложениями, написанными для 2.х
- Архитектура соответствует шаблону проектирования HMVC
- Добавлена новая функциональность ядра
- Все хелперы и библиотеки являются классами в папке classes (без каталогов helpers/libraries)
|
3.0.1
|
2009-10-16[23]
|
3.0.2
|
2009-11-21[24]
|
3.0.3
|
2009-11-23[25]
|
wyau cwningen
|
3.0.4
|
2010-04-04[26]
|
3.0.5
|
2010-05-25[27]
|
sumar hiti
|
3.0.6
|
2010-06-07[28]
|
hattrick
|
3.0.7
|
2010-07-11[29]
|
groen jger
|
3.0.8
|
2010-09-22[30]
|
nya ret
|
3.0.9
|
2010-12-30[31]
|
Hierofalco
|
3.0.10
|
2011-03-13[32]
|
vespertinus
|
3.0.11
|
2011-05-02[33]
|
cuvierii
|
3.0.12
|
2011-07-24[34]
|
3.1
|
merle
|
3.1.0
|
2011-02-07[35]
|
- Усовершенствована работа Request/Response
- В валидацию добавлены контексты
- Удален модуль Pagination
|
aesalon
|
3.1.1
|
2011-02-16
|
Hirondelle
|
3.1.2
|
2011-04-14[32]
|
araea
|
3.1.3
|
2011-05-02[33]
|
fasciinucha
|
3.1.4
|
2011-07-24[34]
|
biarmicus
|
3.1.5
|
2012-08-31[36]
|
3.2
|
Kolibri
|
3.2.0
|
2011-07-24[34]
|
- Дальнейшая доработка механизма Request/Response
- Изменен принцип работы с конфигурационными файлами (драйверы на основе классов Kohana_Config_Reader и Kohana_Config_Writer)
|
Milvago
|
3.2.1
|
2012-08-27[36]
|
hypoleucos
|
3.2.2
|
2012-08-31[37]
|
3.3
|
badius
|
3.3.0
|
2012-10-23[38]
|
- Переход на стандарт PSR-0
- Повышение изолированности HMVC-запросов (Request)
- Более удобная система обработки исключений
- Добавлен модуль Minion а также модуль phpunit
|
Примечания
- Who makes Kohana? Архивировано 23 сентября 2010 года. (англ.)
- Страница загрузки Kohana Архивная копия от 10 февраля 2016 на Wayback Machine (англ.)
- overview [Kohana User Guide] Архивировано 2 октября 2008 года.
- Современные PHP-фреймворки — полный список лидеров (неопр.). Дата обращения: 11 мая 2022. Архивировано 25 февраля 2022 года.
- Kohana fork from CodeIgniter (англ.). PHP devReview() (19 июня 2007). Архивировано из оригинала 12 марта 2012 года.
- Форум CodeIgniter Архивировано 25 марта 2010 года., июнь 2007 г.
- 1 2 3 4 5 6 Kohana User Guide Архивировано 21 ноября 2009 года. (недоступная ссылка с 16-03-2016 [3475 дней])
- Final releases of Kohana / Beginning of Ohanzee (неопр.). Дата обращения: 11 сентября 2014. Архивировано из оригинала 11 сентября 2014 года.
- Репозиторий проекта на Github (неопр.). Дата обращения: 13 августа 2015. Архивировано 24 февраля 2015 года.
- koseven: Koseven a Kohana fork compatible with PHP7. — 2017-11-28. Архивировано 9 июня 2019 года.
- 1 2 kohana/kohana (неопр.). GitHub. Дата обращения: 16 августа 2016. Архивировано 4 октября 2016 года.
- Kohana 3.x vs 2.x Архивировано 1 февраля 2012 года.
- KO3: HMVC и роутинг (неопр.). Дата обращения: 30 сентября 2016. Архивировано 7 августа 2016 года.
- Делаем простой HMVC-виджет в Kohana3 (неопр.). Дата обращения: 2 февраля 2010. Архивировано 5 декабря 2010 года.
- 1 2 BlueFlame 1.0 Released! | CodeIgniter Forums Архивировано 23 марта 2009 года.
- 1 2 3 4 changelog [Kohana User Guide] Архивировано 9 ноября 2009 года.
- changelog:2.1 [Kohana User Guide] Архивировано 2 июля 2009 года.
- changelog:2.1.1 [Kohana User Guide] Архивировано 2 июля 2009 года.
- changelog:2.1.2 [Kohana User Guide] Архивировано 31 мая 2009 года.
- changelog:2.2 [Kohana User Guide] Архивировано 20 июня 2009 года.
- [1]Архивная копия от 28 марта 2013 на Wayback Machine 2.4 Release Candidate 1 Released [Kohana Forums]
- [2]Архивная копия от 28 марта 2013 на Wayback Machine Kohana v3.0 Released! [Kohana Forums]
- [3]Архивная копия от 28 марта 2013 на Wayback Machine Kohana v3.0.1 Released! [Kohana Forums]
- [4]Архивная копия от 28 марта 2013 на Wayback Machine Kohana v3.0.2 Released! [Kohana Forums]
- [5]Архивная копия от 28 марта 2013 на Wayback Machine Kohana v3.0.3 Released! [Kohana Forums]
- [6]Архивная копия от 28 марта 2013 на Wayback Machine Kohana v3.0.4 Released! [Kohana Forums]
- [7]Архивная копия от 28 марта 2013 на Wayback Machine Kohana v3.0.5 Released! [Kohana Forums]
- [8]Архивная копия от 28 марта 2013 на Wayback Machine Kohana v3.0.6 Released! [Kohana Forums]
- [9]Архивная копия от 28 марта 2013 на Wayback Machine Kohana v3.0.7 Released! [Kohana Forums]
- [10]Архивная копия от 28 марта 2013 на Wayback Machine Kohana v3.0.8 Released! [Kohana Forums]
- [11]Архивная копия от 28 марта 2013 на Wayback Machine Kohana v3.0.9 Released! [Kohana Forums]
- 1 2 [12]Архивная копия от 28 марта 2013 на Wayback Machine Kohana 3.1.2 & Kohana 3.0.10 Released! [Kohana Forums]
- 1 2 [13]Архивная копия от 27 ноября 2012 на Wayback Machine Kohana 3.1.3 & Kohana 3.0.11 Released! [Kohana Forums]
- 1 2 3 [14]Архивная копия от 27 ноября 2012 на Wayback Machine Kohana 3.2.0, 3.1.4, 3.0.12 Released! [Kohana Forums]
- [15]Архивная копия от 28 марта 2013 на Wayback Machine Kohana v3.1.0 Released! [Kohana Forums]
- 1 2 [16]Архивная копия от 30 августа 2012 на Wayback Machine Kohana v3.2.1 (and 3.1.5) released! [Kohana Forums]
- [17]Архивная копия от 23 сентября 2012 на Wayback Machine Kohana v3.2.2 Released! [Kohana Forums]
- [18]Архивная копия от 26 октября 2012 на Wayback Machine Kohana 3.3.0 Released! [Kohana Forums]
Ссылки
|
|