Interested Article - Kohana

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

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

История

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

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

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

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

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

Особенности

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

Технологии

Версии

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

В настоящее время параллельно разрабатываются три ветви :

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

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

Отличие Kohana от CodeIgniter

Иллюстрация наследования ресурсов
  • Строгое PHP5 ООП . Предполагает много плюсов: защита видимости, автоматическая подгрузка классов, перегрузка свойств и методов, интерфейсы, абстрактные классы, и применение паттерна одиночка (singleton).
  • Kohana присоединилась к инициативе . Все релизы после 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 следует рассматривать как разные фреймворки. Основные отличия версии 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 было принято решение о переходе на стандарт (англ.) . В связи с этим все имена каталогов и файлов классов должны начинаться с большой буквы. Кроме того, осуществлен целый ряд изменений по повышению изоляции HMVC -запросов, обработке ошибок выполнения запросов и т. д. Добавлен новый модуль Minion для выполнения Cron -задач.

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

Цвет Описание
Красный Старая версия; не поддерживается
Жёлтый Старая версия; всё ещё поддерживается
Зелёный Текущая версия
Голубой Планируемая версия
Название Версия Кодовое имя Подверсия Дата выпуска Существенные изменения
BlueFlame 1.0 1.0
  • Первоначальный релиз
  • Форк от CodeIgniter 1.5.4 (предварительный релиз, ревизия 566 в svn )
Kohana 2.0 Superlime 2.0
  • Код полностью переписан, нет старого унаследованного кода
  • Прекращена совместимость с PHP4, ориентация на PHP5
  • Полностью объектно-ориентированный программный каркас
  • В поставку включены модули
  • Концепция каскадных ресурсов
2.1 Schneefeier 2.1.0
  • Новые библиотеки: 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
2.1.1
  • Исправлена ошибка расширения хелперов
  • Добавлены английский (UK), немецкий и македонский языки
2.1.2
  • Добавлена константа KOHANA_IS_WIN , которая сигнализирует о работе на платформе Windows
  • Многочисленные исправления ошибок
2.2 Efímera 2.2.0
  • Новые библиотеки ( Captcha )
  • Новые хелперы ( upload , format , и т. д.)
  • Новые атрибуты конфигурации,
  • Новые драйверы (MSSQL, PayPal Pro)
  • Чистка кода, оптимизация и исправления ошибок
2.3 Kernachtig 2.3.0
  • Новый роутер
  • Новая библиотека баз данных (object_db)
2.3.1 2009
2.3.2 2009
Aegolius 2.3.3
Buteo Regalis 2.3.4
2.4 - 2.4-RC1

Планировалась как логичное продолжение ветки 2.3, но ввиду выпуска версии 3.0 так и не была доведена до стабильного релиза.

renaissance
  • Код полностью переписан. Нет совместимости с приложениями, написанными для 2.х
  • Архитектура соответствует шаблону проектирования HMVC
  • Добавлена новая функциональность ядра
  • Все хелперы и библиотеки являются классами в папке classes (без каталогов helpers/libraries)
wyau cwningen
sumar hiti
hattrick
großen jäger
nya året
Hierofalco
vespertinus
cuvierii
merle
  • Усовершенствована работа Request / Response
  • В валидацию добавлены контексты
  • Удален модуль Pagination
aesalon
Hirondelle
araea
fasciinucha
biarmicus
Kolibri
  • Дальнейшая доработка механизма Request / Response
  • Изменен принцип работы с конфигурационными файлами (драйверы на основе классов Kohana_Config_Reader и Kohana_Config_Writer )
Milvago
hypoleucos
badius
  • Переход на стандарт
  • Повышение изолированности HMVC -запросов ( Request )
  • Более удобная система обработки исключений
  • Добавлен модуль Minion а также модуль phpunit

Примечания

  1. 23 сентября 2010 года. (англ.)
  2. от 10 февраля 2016 на Wayback Machine (англ.)
  3. 2 октября 2008 года.
  4. . Дата обращения: 11 мая 2022. 25 февраля 2022 года.
  5. (англ.) . PHP devReview() (19 июня 2007). Архивировано из 12 марта 2012 года.
  6. 25 марта 2010 года. , июнь 2007 г.
  7. 21 ноября 2009 года. (недоступная ссылка с 16-03-2016 [2847 дней])
  8. . Дата обращения: 11 сентября 2014. Архивировано из 11 сентября 2014 года.
  9. . Дата обращения: 13 августа 2015. 24 февраля 2015 года.
  10. . — 2017-11-28. 9 июня 2019 года.
  11. . GitHub. Дата обращения: 16 августа 2016. 4 октября 2016 года.
  12. 1 февраля 2012 года.
  13. . Дата обращения: 30 сентября 2016. 7 августа 2016 года.
  14. . Дата обращения: 2 февраля 2010. 5 декабря 2010 года.
  15. 23 марта 2009 года.
  16. 9 ноября 2009 года.
  17. 2 июля 2009 года.
  18. 2 июля 2009 года.
  19. 31 мая 2009 года.
  20. 20 июня 2009 года.
  21. от 28 марта 2013 на Wayback Machine 2.4 Release Candidate 1 Released [Kohana Forums]]
  22. от 28 марта 2013 на Wayback Machine Kohana v3.0 Released! [Kohana Forums]]
  23. от 28 марта 2013 на Wayback Machine Kohana v3.0.1 Released! [Kohana Forums]]
  24. от 28 марта 2013 на Wayback Machine Kohana v3.0.2 Released! [Kohana Forums]]
  25. от 28 марта 2013 на Wayback Machine Kohana v3.0.3 Released! [Kohana Forums]]
  26. от 28 марта 2013 на Wayback Machine Kohana v3.0.4 Released! [Kohana Forums]]
  27. от 28 марта 2013 на Wayback Machine Kohana v3.0.5 Released! [Kohana Forums]]
  28. от 28 марта 2013 на Wayback Machine Kohana v3.0.6 Released! [Kohana Forums]]
  29. от 28 марта 2013 на Wayback Machine Kohana v3.0.7 Released! [Kohana Forums]]
  30. от 28 марта 2013 на Wayback Machine Kohana v3.0.8 Released! [Kohana Forums]]
  31. от 28 марта 2013 на Wayback Machine Kohana v3.0.9 Released! [Kohana Forums]]
  32. от 28 марта 2013 на Wayback Machine Kohana 3.1.2 & Kohana 3.0.10 Released! [Kohana Forums]]
  33. от 27 ноября 2012 на Wayback Machine Kohana 3.1.3 & Kohana 3.0.11 Released! [Kohana Forums]]
  34. от 27 ноября 2012 на Wayback Machine Kohana 3.2.0, 3.1.4, 3.0.12 Released! [Kohana Forums]]
  35. от 28 марта 2013 на Wayback Machine Kohana v3.1.0 Released! [Kohana Forums]]
  36. от 30 августа 2012 на Wayback Machine Kohana v3.2.1 (and 3.1.5) released! [Kohana Forums]]
  37. от 23 сентября 2012 на Wayback Machine Kohana v3.2.2 Released! [Kohana Forums]]
  38. от 26 октября 2012 на Wayback Machine Kohana 3.3.0 Released! [Kohana Forums]]

Ссылки

  • (англ.)
  • (англ.)
  • (англ.)
  • Cristian Gilè. (англ.) . Net Tuts + (9 июля 2009). Архивировано из 12 марта 2012 года.
  • — Kohana на Хабрахабре
  • (рус.)
Источник —

Same as Kohana