Kohana
| Kohana | |
![]() |
|
| Тип |
Программный каркас для создания веб-приложений |
|---|---|
| Разработчик |
Kohana Team[1] |
| Написана на | |
| Операционная система | |
| Последняя версия |
3.2 [2] (24 июля 2011) |
| Лицензия | |
| Сайт | |
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
- 100 % совместимость с UTF-8
- Очень легко расширяем
[править] Технологии
- Строгое Объектно-ориентированное программирование, реализованное на PHP5
- Простая абстракция базы данных c использованием SQL драйверов
[править] Версии
[править] Ветви разработки
В настоящее время параллельно разрабатываются три ветви:
- Ветвь 2.x (стабильная версия 2.3.4). Рекомендуется для приложений, которые уже написаны на основе 2.x, и, следовательно, не могут быть портированы на 3.x без значительной переработки. Версия 2.4 нестабильная, является продолжением традиций 2.3.x с небольшими изменениями и новой версией библиотеки Database. Но, судя по всему, стабильного релиза 2.4 не будет, все разработчики переключились на работу с ветками 3.0 и 3.1.
- Ветвь 3.0.x. Рекомендуется для вновь разрабатываемых приложений[8]. Третья версия полностью переработана и изначально разрабатывалась (англ.) практически в одиночку одним из главных девелоперов фреймворка (Woody Gilk aka Shadowhand). Эта версия несовместима с предыдущими (2.x). Текущая стабильная версия 3.0.9.1.
- Ветвь 3.1.x. Рекомендуется для вновь разрабатываемых приложений[8]. Основные усилия направлены на дальнейшее усовершенствование механизма "запрос-ответ" (Request/Response), а также роутинга и валидации. Предусмотрена (местами) поддержка лямбда-функций (начиная с php v5.3).
[править] Различия между версиями
[править] Отличие 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 от 3.0
В ветке 3.1.x произошло разделение объекта Request на отдельные классы Request и Response. Кроме того, валидация теперь также распределена между классами Validation (управление ходом валидации) и Valid (набор стандартных статических правил, аналогично классу Valid в Kohana 2.3.4). Более подробно об основных изменениях можно почитать в официальной документации (англ.).
[править] История версий
| Цвет | Описание |
|---|---|
| Красный | Старая версия; не поддерживается |
| Жёлтый | Старая версия; всё ещё поддерживается |
| Зелёный | Текущая версия |
| Голубой | Планируемая версия |
| Название | Версия | Кодовое имя | Подверсия | Дата релиза | Существенные изменения |
|---|---|---|---|---|---|
| BlueFlame | 1.0 | 1.0 | 2007-05-31[12] |
|
|
| Kohana | 2.0 | Superlime | 2.0 | 2007-11-08[13] | |
| 2.1 | Schneefeier | 2.1.0 | 2008-02-05[13] |
|
|
| 2.1.1 | 2008-02-06[13] |
|
|||
| 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 |
|
|||
| 3.0 | Renaissance | 3.0 | 2009-09-17 |
|
|
| 3.1 | Merle | 3.1 | 2011-02-07 |
|
[править] Примечания
- ↑ Who makes Kohana? (англ.)
- ↑ Страница загрузки Kohana (англ.)
- ↑ overview [Kohana User Guide]
- ↑ Современные PHP-фреймворки - полный список лидеров
- ↑ Kohana fork from CodeIgniter (англ.). PHP devReview() (19 июня 2007 г.).
- ↑ Форум 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]
[править] Ссылки
- Официальный сайт Kohana Web Framework (англ.)
- Страница для выбора дистрибутива (англ.)
- Документация для различных версий (англ.)
- Официальный форум Kohana Web Framework (англ.)
- Неофициальная документация для Kohana 3 (англ.)
- Cristian Gilè Kohana: The Swift PHP Framework (англ.). Net Tuts + (9 июля 2009 г.).
- Русскоязычная категория официального форума Kohana
- habrahabr.ru/blogs/kohanaphp — Kohana на Хабрахабре
- Статьи по работе с Kohana 3
- Множество различной информации по Kohana
- Бесплатный видеокурс по Kohana 3 (рус.)
- Уроки и документация по Kohana 3.2 (рус.)
|
|
|
|---|---|
| Люди | Энди Гутманс • Расмус Лердорф • Зээв Сураски |
| Ресурсы | Zend Engine • Библиотеки • PEAR • Редакторы • Акселератор |
| Реализации | HipHop • Quercus • Project Zero • Phalanger |
| Фреймворки | AppFlower • CakePHP • CodeIgniter • Drupal • Horde • Joomla! • Lithium • Midgard • MODx • Qcodo • Seagull • SilverStripe • Symfony • TYPO3 • Xaraya • Yii • Zend Framework • Zeta Components |
| ORM | Propel • Doctrine |
| IDE | AppFlower • PhpStorm • NetBeans • RadPHP • PHPEdit • Zend Studio |
| Компилятор | Phalanger |
| Widget toolkit | PHP-GTK • PHP-Qt |
| • |
|


