Русская Википедия:Kohana
Шаблон:Карточка программы Kohana (ранее Шаблон:Lang-en — «Голубое пламя») — PHP5 веб-фреймворк с открытым кодом, который использует архитектурную модель HMVC (Hierarchical Model View Controller — Иерархические Модель-Контроллер-Вид). Его цели — быть безопасным, лёгким и простым в использовании[1].
Электронный журнал для веб-разработчиков PHP Inside признал Kohana «выбором редакции … за архитектуру, быстроту и сообщество»[2]
История
Проект Kohana был создан как ветвь PHP фреймворка CodeIgniter под именем Blue Flame[3]. Главной причиной форка был переход к более открытой для общественности модели разработки, потому, что многие пользователи были недовольны скоростью разработки и исправления ошибок в CodeIgniter. Rick Ellis — создатель и владелец CodeIgniter — был счастлив видеть форк своего проекта, но помогать отказался; он подтолкнул новый проект к созданию собственной документации и посоветовал переименовать проект.[4] В июле 2007 Blue Flame был переименован в Kohana для того, чтобы избежать проблем с авторскими правами в будущем[5].
Название Kohana было выбрано, когда разработчики начали просматривать словари коренных американцев для того, чтобы выбрать слово, не нарушающее авторские права. Kohana на языке Сиу значит «быстрый».
В апреле 2014 года главный разработчик shadowhand заявил,[6] что развитие проекта завершено, однако фреймворк продолжает разрабатываться и поддерживаться сообществом[7], а на официальном сайте продолжают выходить обновления.
4 февраля 2017 года проект был закрыт, главный разработчик "shadowhand" сообщил об этом на сайте фразой "Kohana is DEAD".
После закрытия проекта участники сообщества рассматривали различные варианты фреймворков для миграции, и как выяснилось, любая миграция была бы очень трудной. Поэтому участники сообщества создали форк проекта, который был назван Koseven. Koseven может работать в качестве замены для движка Kohana в проектах, которые до сих пор его используют. Основная цель проекта это исправление ошибок и поддержка новых версий PHP, в то время, как новый функционал рекомендуется добавлять через расширения.[8]
Особенности
- Высокая безопасность
- Хорошо прокомментированный код и встроенные средства отладки и профилирования
- Прост в понимании
- Использует парадигму HMVC
- Поддержка UTF-8
- Очень легко расширяем
- Распространяется по лицензии BSD
Технологии
- Строгое Объектно-ориентированное программирование, реализованное на PHP5
- Простая абстракция базы данных c использованием SQL драйверов
Версии
Ветви разработки
В настоящее время параллельно разрабатываются три ветви[9]:
- Ветвь 3.1.x. Последняя стабильная версия 3.1.5 (поддержка закончена).
- Ветвь 3.2.x. Последняя стабильная версия 3.2.2. (поддержка закончена).
- Ветвь 3.3.x. Рекомендуется для вновь разрабатываемых приложений[9]. Текущая стабильная версия 3.3.0. Официальная поддержка до ноября 2013 г. В данной ветке продолжена переработка механизма «запрос-ответ» (Request/Response), особенно в части HMVC-запросов, изменения в роутинге (фильтры, см. #4388Шаблон:Ref-en)
Различия между версиями
Отличие 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 следует рассматривать[10] как разные фреймворки. Основные отличия версии 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[11][12].
Отличие Kohana 3.1 от Kohana 3.0
В ветке 3.1.x произошло разделение объекта Request на отдельные классы Request и Response. Кроме того, валидация теперь также распределена между классами Validation (управление ходом валидации) и Valid (набор стандартных статических правил, аналогично классу Valid в Kohana 2.3.4). Более подробно об основных изменениях можно почитать в официальной документацииШаблон:Ref-en.
Отличие 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Шаблон:Ref-en. В связи с этим все имена каталогов и файлов классов должны начинаться с большой буквы. Кроме того, осуществлен целый ряд изменений по повышению изоляции HMVC-запросов, обработке ошибок выполнения запросов и т. д. Добавлен новый модуль Minion для выполнения Cron-задач.
История версий
Цвет | Описание |
---|---|
Красный | Старая версия; не поддерживается |
Жёлтый | Старая версия; всё ещё поддерживается |
Зелёный | Текущая версия |
Голубой | Планируемая версия |
Название | Версия | Кодовое имя | Подверсия | Дата выпуска | Существенные изменения |
---|---|---|---|---|---|
BlueFlame | 1.0 | 1.0 | 2007-05-31[13] |
| |
Kohana | 2.0 | Superlime | 2.0 | 2007-11-08[14] | |
2.1 | Schneefeier | 2.1.0 | 2008-02-05[14] |
| |
2.1.1 | 2008-02-06[14] |
| |||
2.1.2 | 2008-06-10 |
| |||
2.2 | Efímera | 2.2.0 | 2008-08-08 | ||
2.3 | Kernachtig | 2.3.0 | 2008-12-20 |
| |
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[19] |
Планировалась как логичное продолжение ветки 2.3, но ввиду выпуска версии 3.0 так и не была доведена до стабильного релиза. | |
3.0 | renaissance | 3.0.0 | 2009-09-17[20] |
| |
3.0.1 | 2009-10-16[21] | ||||
3.0.2 | 2009-11-21[22] | ||||
3.0.3 | 2009-11-23[23] | ||||
wyau cwningen | 3.0.4 | 2010-04-04[24] | |||
3.0.5 | 2010-05-25[25] | ||||
sumar hiti | 3.0.6 | 2010-06-07[26] | |||
hattrick | 3.0.7 | 2010-07-11[27] | |||
großen jäger | 3.0.8 | 2010-09-22[28] | |||
nya året | 3.0.9 | 2010-12-30[29] | |||
Hierofalco | 3.0.10 | 2011-03-13[30] | |||
vespertinus | 3.0.11 | 2011-05-02[31] | |||
cuvierii | 3.0.12 | 2011-07-24[32] | |||
3.1 | merle | 3.1.0 | 2011-02-07[33] |
| |
aesalon | 3.1.1 | 2011-02-16 | |||
Hirondelle | 3.1.2 | 2011-04-14[30] | |||
araea | 3.1.3 | 2011-05-02[31] | |||
fasciinucha | 3.1.4 | 2011-07-24[32] | |||
biarmicus | 3.1.5 | 2012-08-31[34] | |||
3.2 | Kolibri | 3.2.0 | 2011-07-24[32] |
| |
Milvago | 3.2.1 | 2012-08-27[34] | |||
hypoleucos | 3.2.2 | 2012-08-31[35] | |||
3.3 | badius | 3.3.0 | 2012-10-23[36] |
Примечания
Ссылки
- Официальный сайт Kohana Web Framework Шаблон:Ref-en
- Документация для различных версий Шаблон:Ref-en
- Официальный форум Kohana Web Framework Шаблон:Ref-en
- Шаблон:Cite web
- Русскоязычная категория официального форума Kohana
- habrahabr.ru/hub/kohanaphp — Kohana на Хабрахабре
- Статьи по работе с Kohana 3
- Уроки и документация по Kohana 3.2 Шаблон:Ref-ru
- ↑ overview [Kohana User Guide] Шаблон:Webarchive
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Форум CodeIgniter Шаблон:Webarchive, июнь 2007 г.
- ↑ 5,0 5,1 5,2 5,3 5,4 5,5 Kohana User Guide Шаблон:Webarchive Шаблон:Мёртвая ссылка
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Статья
- ↑ 9,0 9,1 Шаблон:Cite web
- ↑ Kohana 3.x vs 2.x Шаблон:Webarchive
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ 13,0 13,1 BlueFlame 1.0 Released! | CodeIgniter Forums Шаблон:Webarchive
- ↑ 14,0 14,1 14,2 14,3 changelog [Kohana User Guide] Шаблон:Webarchive
- ↑ changelog:2.1 [Kohana User Guide] Шаблон:Webarchive
- ↑ changelog:2.1.1 [Kohana User Guide] Шаблон:Webarchive
- ↑ changelog:2.1.2 [Kohana User Guide] Шаблон:Webarchive
- ↑ changelog:2.2 [Kohana User Guide] Шаблон:Webarchive
- ↑ Шаблон:Wayback 2.4 Release Candidate 1 Released [Kohana Forums]
- ↑ Шаблон:Wayback Kohana v3.0 Released! [Kohana Forums]
- ↑ Шаблон:Wayback Kohana v3.0.1 Released! [Kohana Forums]
- ↑ Шаблон:Wayback Kohana v3.0.2 Released! [Kohana Forums]
- ↑ Шаблон:Wayback Kohana v3.0.3 Released! [Kohana Forums]
- ↑ Шаблон:Wayback Kohana v3.0.4 Released! [Kohana Forums]
- ↑ Шаблон:Wayback Kohana v3.0.5 Released! [Kohana Forums]
- ↑ Шаблон:Wayback Kohana v3.0.6 Released! [Kohana Forums]
- ↑ Шаблон:Wayback Kohana v3.0.7 Released! [Kohana Forums]
- ↑ Шаблон:Wayback Kohana v3.0.8 Released! [Kohana Forums]
- ↑ Шаблон:Wayback Kohana v3.0.9 Released! [Kohana Forums]
- ↑ 30,0 30,1 Шаблон:Wayback Kohana 3.1.2 & Kohana 3.0.10 Released! [Kohana Forums]
- ↑ 31,0 31,1 Шаблон:Wayback Kohana 3.1.3 & Kohana 3.0.11 Released! [Kohana Forums]
- ↑ 32,0 32,1 32,2 Шаблон:Wayback Kohana 3.2.0, 3.1.4, 3.0.12 Released! [Kohana Forums]
- ↑ Шаблон:Wayback Kohana v3.1.0 Released! [Kohana Forums]
- ↑ 34,0 34,1 Шаблон:Wayback Kohana v3.2.1 (and 3.1.5) released! [Kohana Forums]
- ↑ Шаблон:Wayback Kohana v3.2.2 Released! [Kohana Forums]
- ↑ Шаблон:Wayback Kohana 3.3.0 Released! [Kohana Forums]
- Русская Википедия
- Страницы с неработающими файловыми ссылками
- Веб-фреймворки на PHP
- Свободные библиотеки программ
- Свободное кроссплатформенное программное обеспечение
- Программное обеспечение с лицензией BSD
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Википедия
- Статья из Википедии
- Статья из Русской Википедии