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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Добавлена информация о прекращении развития
Строка 17: Строка 17:


[[Электронный журнал]] для веб-разработчиков [[PHP Inside]] признал Kohana «''выбором редакции … за архитектуру, быстроту и сообщество''»<ref>[http://phpinside.ru/?q=node/841 Современные PHP-фреймворки — полный список лидеров]</ref>
[[Электронный журнал]] для веб-разработчиков [[PHP Inside]] признал Kohana «''выбором редакции … за архитектуру, быстроту и сообщество''»<ref>[http://phpinside.ru/?q=node/841 Современные PHP-фреймворки — полный список лидеров]</ref>

Развитие фреймворка прекращено в апреле 2014 года.<ref name="Final releases of Kohana">[http://forum.kohanaframework.org/discussion/12509/final-releases-of-kohana-beginning-of-ohanzee Final releases of Kohana / Beginning of Ohanzee]</ref>


== История ==
== История ==
Строка 22: Строка 24:


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

В апреле 2014 года главный разработчик ''shadowhand'' заявил,<ref name="Final releases of Kohana"/> что развитие проекта завершено. Последними версиями ветвей 3.2 и 3.3 являются соответственно 3.2.3 и 3.3.2.


== Особенности ==
== Особенности ==

Версия от 10:32, 11 сентября 2014

Kohana
Логотип программы Kohana
Тип Программный каркас для создания веб-приложений
Разработчик Kohana Team[1]
Написана на PHP
Операционная система Кроссплатформенный
Последняя версия 3.3.1[2] (4 сентября 2013)
Лицензия BSD
Сайт kohanaframework.org

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

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

Развитие фреймворка прекращено в апреле 2014 года.[5]

История

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

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

В апреле 2014 года главный разработчик shadowhand заявил,[5] что развитие проекта завершено. Последними версиями ветвей 3.2 и 3.3 являются соответственно 3.2.3 и 3.3.2.

Особенности

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

Технологии

Версии

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

В настоящее время параллельно разрабатываются три ветви[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 (англ.))

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

Отличие 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). Более подробно об основных изменениях можно почитать в официальной документации (англ.).

Отличие 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-задач.

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

Цвет Описание
Красный Старая версия; не поддерживается
Жёлтый Старая версия; всё ещё поддерживается
Зелёный Текущая версия
Голубой Планируемая версия
Название Версия Кодовое имя Подверсия Дата релиза Существенные изменения
BlueFlame 1.0 1.0 2007-05-31[13]
  • Первоначальный релиз
  • Форк от CodeIgniter 1.5.4 (предварительный релиз, ревизия 566 в svn)[13]
Kohana 2.0 Superlime 2.0 2007-11-08[14]
  • Код полностью переписан, нет старого унаследованного кода[14][8]
  • Прекращена совместимость с PHP4, ориентация на PHP5[8]
  • Полностью объектно-ориентированный программный каркас[8]
  • В поставку включены модули[8]
  • Концепция каскадных ресурсов[8]
2.1 Schneefeier 2.1.0 2008-02-05[14]
  • Новые библиотеки: 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[15]
2.1.1 2008-02-06[14]
  • Исправлена ошибка расширения хелперов
  • Добавлены английский (UK), немецкий и македонский языки[16]
2.1.2 2008-06-10
  • Добавлена константа KOHANA_IS_WIN, которая сигнализирует о работе на платформе Windows
  • Многочисленные исправления ошибок[17]
2.2 Efímera 2.2.0 2008-08-08
  • Новые библиотеки (Captcha)
  • Новые хелперы (upload, format, и т. д.)
  • Новые атрибуты конфигурации,
  • Новые драйверы (MSSQL, PayPal Pro)
  • Чистка кода, оптимизация и исправления ошибок[18]
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[19]

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

3.0 renaissance 3.0.0 2009-09-17[20]
  • Код полностью переписан. Нет совместимости с приложениями, написанными для 2.х
  • Архитектура соответствует шаблону проектирования HMVC
  • Добавлена новая функциональность ядра
  • Все хелперы и библиотеки являются классами в папке classes (без директорий helpers/libraries)
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]
  • Усовершенствована работа Request/Response
  • В валидацию добавлены контексты
  • Удален модуль Pagination
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]
  • Дальнейшая доработка механизма Request/Response
  • Изменен принцип работы с конфигурационными файлами (драйверы на основе классов Kohana_Config_Reader и Kohana_Config_Writer)
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]
  • Переход на стандарт PSR-0
  • Повышение изолированности HMVC-запросов (Request)
  • Более удобная система обработки исключений
  • Добавлен модуль Minion а также модуль phpunit

Примечания

  1. Who makes Kohana? (англ.)
  2. Страница загрузки Kohana (англ.)
  3. overview [Kohana User Guide]
  4. Современные PHP-фреймворки — полный список лидеров
  5. 1 2 Final releases of Kohana / Beginning of Ohanzee
  6. Kohana fork from CodeIgniter (англ.). PHP devReview() (19 июня 2007). Архивировано 12 марта 2012 года.
  7. Форум CodeIgniter, июнь 2007 г.
  8. 1 2 3 4 5 6 overview: history [Kohana User Guide]
  9. 1 2 Kohana: Download
  10. Kohana 3.x vs 2.x
  11. KO3: HMVC и роутинг
  12. Делаем простой HMVC-виджет в Kohana3
  13. 1 2 BlueFlame 1.0 Released! | CodeIgniter Forums
  14. 1 2 3 4 changelog [Kohana User Guide]
  15. changelog:2.1 [Kohana User Guide]
  16. changelog:2.1.1 [Kohana User Guide]
  17. changelog:2.1.2 [Kohana User Guide]
  18. changelog:2.2 [Kohana User Guide]
  19. 2.4 Release Candidate 1 Released [Kohana Forums]
  20. Kohana v3.0 Released! [Kohana Forums]
  21. Kohana v3.0.1 Released! [Kohana Forums]
  22. Kohana v3.0.2 Released! [Kohana Forums]
  23. Kohana v3.0.3 Released! [Kohana Forums]
  24. Kohana v3.0.4 Released! [Kohana Forums]
  25. Kohana v3.0.5 Released! [Kohana Forums]
  26. Kohana v3.0.6 Released! [Kohana Forums]
  27. Kohana v3.0.7 Released! [Kohana Forums]
  28. Kohana v3.0.8 Released! [Kohana Forums]
  29. Kohana v3.0.9 Released! [Kohana Forums]
  30. 1 2 Kohana 3.1.2 & Kohana 3.0.10 Released! [Kohana Forums]
  31. 1 2 Kohana 3.1.3 & Kohana 3.0.11 Released! [Kohana Forums]
  32. 1 2 3 Kohana 3.2.0, 3.1.4, 3.0.12 Released! [Kohana Forums]
  33. Kohana v3.1.0 Released! [Kohana Forums]
  34. 1 2 Kohana v3.2.1 (and 3.1.5) released! [Kohana Forums]
  35. Kohana v3.2.2 Released! [Kohana Forums]
  36. Kohana 3.3.0 Released! [Kohana Forums]

Ссылки

Шаблон:Фреймворки для веб приложений