- Kohana
-
Kohana Тип Программный каркас для создания веб-приложений
Разработчик Kohana Team[1]
Написана на Операционная система Последняя версия 3.3.0[2] (23 октября 2012)
Лицензия Сайт 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 на языке Сиу значит «быстрый». Также в японском языке имеет значение «маленький цветок», а на украинском «любимая» и имя известной косатки (Kohana) — все эти значения не имеют отношения к названию.
Особенности
- Высокая безопасность
- Хорошо прокомментированный код и встроенные средства отладки и профилирования
- Прост в понимании
- Использует парадигму MVC
- Поддержка UTF-8
- Очень легко расширяем
- Распространяется по лицензии BSD
Технологии
- Строгое Объектно-ориентированное программирование, реализованное на PHP5
- Простая абстракция базы данных c использованием SQL драйверов
Версии
Ветви разработки
В настоящее время параллельно разрабатываются три ветви[8]:
- Ветвь 3.1.x. Последняя стабильная версия 3.1.5 (поддержка закончена).
- Ветвь 3.2.x. Последняя стабильная версия 3.2.2. Официальная поддержка до мая 2013 г.
- Ветвь 3.3.x. Рекомендуется для вновь разрабатываемых приложений[8]. Текущая стабильная версия 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 следует рассматривать[9] как разные фреймворки. Основные отличия версии 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[10][11].
Отличие 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[12] - Первоначальный релиз
- Форк от CodeIgniter 1.5.4 (предварительный релиз, ревизия 566 в svn)[12]
Kohana 2.0 Superlime 2.0 2007-11-08[13] 2.1 Schneefeier 2.1.0 2008-02-05[13] - Новые библиотеки: 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[14]
2.1.1 2008-02-06[13] - Исправлена ошибка расширения хелперов
- Добавлены английский (UK), немецкий и македонский языки[15]
2.1.2 2008-06-10 - Добавлена константа KOHANA_IS_WIN, которая сигнализирует о работе на платформе Windows
- Многочисленные исправления ошибок[16]
2.2 Efímera 2.2.0 2008-08-08 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[18] Планировалась как логичное продолжение ветки 2.3, но ввиду выпуска версии 3.0 так и не была доведена до стабильного релиза.
3.0 renaissance 3.0.0 2009-09-17[19] - Код полностью переписан. Нет совместимости с приложениями, написанными для 2.х
- Архитектура соответствует шаблону проектирования HMVC
- Добавлена новая функциональность ядра
- Все хелперы и библиотеки являются классами в папке classes (без директорий helpers/libraries)
3.0.1 2009-10-16[20] 3.0.2 2009-11-21[21] 3.0.3 2009-11-23[22] wyau cwningen 3.0.4 2010-04-04[23] 3.0.5 2010-05-25[24] sumar hiti 3.0.6 2010-06-07[25] hattrick 3.0.7 2010-07-11[26] großen jäger 3.0.8 2010-09-22[27] nya året 3.0.9 2010-12-30[28] Hierofalco 3.0.10 2011-03-13[29] vespertinus 3.0.11 2011-05-02[30] cuvierii 3.0.12 2011-07-24[31] 3.1 merle 3.1.0 2011-02-07[32] - Усовершенствована работа Request/Response
- В валидацию добавлены контексты
- Удален модуль Pagination
aesalon 3.1.1 2011-02-16 Hirondelle 3.1.2 2011-04-14[33] araea 3.1.3 2011-05-02[34] fasciinucha 3.1.4 2011-07-24[35] biarmicus 3.1.5 2012-08-31[36] 3.2 Kolibri 3.2.0 2011-07-24[37] - Дальнейшая доработка механизма Request/Response
- Изменен принцип работы с конфигурационными файлами (драйверы на основе классов Kohana_Config_Reader и Kohana_Config_Writer)
Milvago 3.2.1 2012-08-27[38] hypoleucos 3.2.2 2012-08-31[39] 3.3 badius 3.3.0 2012-10-23[40] Примечания
- ↑ Who makes Kohana? (англ.)
- ↑ Страница загрузки Kohana (англ.)
- ↑ overview [Kohana User Guide]
- ↑ Современные PHP-фреймворки — полный список лидеров
- ↑ Kohana fork from CodeIgniter (англ.). PHP devReview() (19 июня 2007 г.). Архивировано из первоисточника 12 марта 2012.
- ↑ Форум CodeIgniter, июнь 2007 г.
- ↑ 1 2 3 4 5 6 overview: history [Kohana User Guide]
- ↑ 1 2 Kohana: Download
- ↑ Kohana 3.x vs 2.x
- ↑ KO3: HMVC и роутинг
- ↑ Делаем простой HMVC-виджет в Kohana3
- ↑ 1 2 BlueFlame 1.0 Released! | CodeIgniter Forums
- ↑ 1 2 3 4 changelog [Kohana User Guide]
- ↑ changelog:2.1 [Kohana User Guide]
- ↑ changelog:2.1.1 [Kohana User Guide]
- ↑ changelog:2.1.2 [Kohana User Guide]
- ↑ changelog:2.2 [Kohana User Guide]
- ↑ 2.4 Release Candidate 1 Released [Kohana Forums]
- ↑ Kohana v3.0 Released! [Kohana Forums]
- ↑ Kohana v3.0.1 Released! [Kohana Forums]
- ↑ Kohana v3.0.2 Released! [Kohana Forums]
- ↑ Kohana v3.0.3 Released! [Kohana Forums]
- ↑ Kohana v3.0.4 Released! [Kohana Forums]
- ↑ Kohana v3.0.5 Released! [Kohana Forums]
- ↑ Kohana v3.0.6 Released! [Kohana Forums]
- ↑ Kohana v3.0.7 Released! [Kohana Forums]
- ↑ Kohana v3.0.8 Released! [Kohana Forums]
- ↑ Kohana v3.0.9 Released! [Kohana Forums]
- ↑ Kohana 3.1.2 & Kohana 3.0.10 Released! [Kohana Forums]
- ↑ Kohana 3.1.3 & Kohana 3.0.11 Released! [Kohana Forums]
- ↑ Kohana 3.2.0, 3.1.4, 3.0.12 Released! [Kohana Forums]
- ↑ Kohana v3.1.0 Released! [Kohana Forums]
- ↑ Kohana 3.1.2 & Kohana 3.0.10 Released! [Kohana Forums]
- ↑ Kohana 3.1.3 & Kohana 3.0.11 Released! [Kohana Forums]
- ↑ Kohana 3.2.0, 3.1.4, 3.0.12 Released! [Kohana Forums]
- ↑ Kohana v3.2.1 (and 3.1.5) released! [Kohana Forums]
- ↑ Kohana 3.2.0, 3.1.4, 3.0.12 Released! [Kohana Forums]
- ↑ Kohana v3.2.1 (and 3.1.5) released! [Kohana Forums]
- ↑ Kohana v3.2.2 Released! [Kohana Forums]
- ↑ Kohana 3.3.0 Released! [Kohana Forums]
а также модуль phpunit
Ссылки
Раздел ссылок нуждается в переработке Пожалуйста, удалите возможную рекламу и проверьте, все ли ссылки отвечают правилам.- Официальный сайт Kohana Web Framework (англ.)
- Страница для выбора дистрибутива (англ.)
- Документация для различных версий (англ.)
- Официальный форум Kohana Web Framework (англ.)
- Неофициальная документация для Kohana 3 (англ.)
- Cristian Gilè Kohana: The Swift PHP Framework (англ.). Net Tuts + (9 июля 2009 г.). Архивировано из первоисточника 12 марта 2012.
- Русскоязычная категория официального форума Kohana
- habrahabr.ru/blogs/kohanaphp — Kohana на Хабрахабре
- Статьи по работе с Kohana 3
- Множество различной информации по Kohana
- Уроки и документация по Kohana 3.2 (рус.)
- Русская документация Kohana 3 (рус.)
- Перевод на украинский язык документации по Kohana v3.2 (укр.)
PHP Люди Энди Гутманс • Расмус Лердорф • Зеев Сураски Ресурсы Zend Engine • Библиотеки • PEAR • Редакторы • Акселератор Реализации HipHop • Quercus • Project Zero • Phalanger • Parrot Фреймворки AppFlower • CakePHP • CodeIgniter • Drupal • FuelPHP • Horde • Joomla! • Lithium • Midgard • MODx • Qcodo • Seagull • SilverStripe • Symfony • TYPO3 • Xaraya • Yii • Zend Framework • Zeta Components Тестирование PHPUnit • PHP Unit Testing Framework • SimpleTest ORM Propel • Doctrine IDE AppFlower • Eclipse PDT • PhpStorm • NetBeans • RadPHP • PHP DevelStudio • PHPEdit • Zend Studio Компилятор Phalanger Widget toolkit wxPHP • PHP-GTK • PHP-Qt • Категория Веб-фреймворки ASP.NET DotNetNuke • ASP.NET MVC • MonoRail
ColdFusion ColdSpring • Fusebox • Mach-II • Model-Glue
Java Apache (Cocoon • Struts • Velocity • WebWork 2) • AppFuse • Aranea • Eclipse • Facelets • Flexive • FreeMarker • Google Web Toolkit • Grails • Hamlets • ItsNat • JavaServer Faces • Jspx • JBoss Seam • jZeno • Makumba • OpenLaszlo • OpenXava • Reasonable Server Faces (RSF) • Restlet • RichFaces • RIFE • Shale • SmartClient • Spring • Stripes • Tapestry • ThinWire • Vaadin • WebMacro • WebWork • WebObjects • Wicket • ZK
JavaScript node.js • AJILE • Clean AJAX • Dojo Toolkit • Echo • Ext JS • jQuery • jMaki • Microsoft AJAX Library • MochiKit • MooTools • Prototype • qooxdoo • Rialto Toolkit • Rico • script.aculo.us • SmartClient • Spry • SproutCore • Yahoo! UI Library • Underscore • PhoneGap
Perl Catalyst • Interchange • Titanium • Maypole • HTML:Mason
PHP Acode • Akelos • BlueShoes • CakePHP • Canvas • CodeIgniter • DIY • Drupal • Fuse • Horde • Kohana • LiveStreet • PHP For Applications • PHPOpenbiz • PRADO • Qcodo • Seagull • Solar • Symfony • W3Core • Yii • Zend • Zoop • Joomla
Python CherryPy • Django • GAE framework • Karrigell • Nevow • Porcupine • Pylons • Pyramid • Spyce • TurboGears • Twisted • Tornado • Webware • Zope
Ruby Camping • Nitro • IOWA • Ramaze • Cerise • Merb • Ruby on Rails • Sinatra • Padrino
Прочие
языкиAlpha Five • Fusebox (ColdFusion • PHP) • Helma Object Publisher (Server-side) • Lift (Scala) • Magic (Scheme) • OpenACS (Tcl) • Seaside (Smalltalk) • UnCommon Web (Common Lisp) • Yaws (Erlang) • Oracle Application Express (PL/SQL)
Категории:- Программное обеспечение по алфавиту
- Каркасы веб-приложений на PHP
- Свободные библиотеки программ
Wikimedia Foundation. 2010.