Kohana

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Kohana
Kohana.png
Тип

Программный каркас для создания веб-приложений

Разработчик

Kohana Team[1]

Написана на

PHP

Операционная система

Кроссплатформенный

Последняя версия

3.2 [2] (24 июля 2011)

Лицензия

BSD

Сайт

http://kohanaframework.org

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
  • Очень легко расширяем

[править] Технологии

[править] Версии

[править] Ветви разработки

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

  • Ветвь 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]
  • Первоначальный релиз
  • Форк от CodeIgniter 1.5.4 (предварительный релиз, ревизия 566 в svn)[12]
Kohana 2.0 Superlime 2.0 2007-11-08[13]
  • Код полностью переписан, нет старого унаследованного кода[13][7]
  • Прекращена совместимость с PHP4, ориентация на PHP5[7]
  • Полностью объектно-ориентированный программный каркас[7]
  • В поставку включены модули[7]
  • Концепция каскадных ресурсов[7]
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
  • Новые библиотеки (Captcha)
  • Новые хелперы (upload, format, и т.д.)
  • Новые атрибуты конфигурации,
  • Новые драйверы (MSSQL, PayPal Pro)
  • Чистка кода, оптимизация и исправления ошибок[17]
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
  • Новая библиотека для работы с базами данных
  • Обновления в ORM
  • Добавлено кэширование для представлений (англ. views)
3.0 Renaissance 3.0 2009-09-17
  • Код полностью переписан. Нет совместимости с приложениями, написанными для 2.х
  • Архитектура соответствует шаблону проектирования HMVC
  • Добавлена новая функциональность ядра
  • Все хелперы и библиотеки являются классами в папке classes (без директорий helpers/libraries)
3.1 Merle 3.1 2011-02-07
  • Усовершенствована работа Request/Response
  • В валидацию добавлены контексты

[править] Примечания

[править] Ссылки

Kohana (web framework)

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Участие
Печать/экспорт
Инструменты
На других языках