Kohana

Kohana (вимовляється «кохана» або «когана»; раніша назва Blue Flame) — веб-фреймворк на мові PHP з відкритим кодом, який використовує архітектурну модель MVC (англ. Model View Controller). Його мета — бути безпечним, легким і простим у використанні.

Історія

Проект Kohana був створений як відгалуження PHP-фреймворку CodeIgniter під назвою Blue Flame.[1] Головною причиною форку був перехід до відкритішої для громадськості моделі розробки, оскільки багато користувачів були невдоволені швидкістю розробки і виправлення помилок у CodeIgniter. Рік Елліс (англ. Rick Ellis) — творець і власник CodeIgniter — радо зустрів відгалуження від свого проекту, але допомагати відмовився; він підштовхнув новий проект до створення власної документації і порадив перейменувати проект.[2] В липні 2007 Blue Flame був перейменований в Kohana для того, щоб уникнути проблем з авторськими правами в майбутньому.

Назва «Kohana» було вибрано, коли розробники почали переглядати словники корінних американців для того, щоб вибрати слово, яке не порушувало б авторського права. Kohana мовою Сіу означає «швидкий». Українською вимова назви Kohana — «кохана» — означає та, яку кохають, палко люблять. Також в японській мові має значення «маленька квітка», та ім'я відомої касатки (Kohana) — всі ці значення не мають відношення до назви.

Особливості

  • Висока безпека
  • Екстремальна легкість
  • Легкий у розумінні
  • Використовує MVC-модель
  • Повна сумісність з UTF-8
  • Дуже легко розширюється

Технології

  • Суворе ООП, реалізоване на PHP5
  • Проста абстракція бази даних з використанням SQL-драйверів

Версії

Гілки розробки

В даний час паралельно розробляються три гілки:[3]

  • Гілка 3 .1. X. Поточна стабільна версія 3.1.4. Офіційно підтримувалася до лютого 2012 р. Проте, оскільки версія 3.1.4 була випущена в липні 2011 р., очікується ще як мінімум один мінорний реліз із закриттям відомих багів.
  • Гілка 3 .2. X. Рекомендується для створення нових програм[3]. Поточна стабільна версія 3.2.0. Офіційна підтримка до липня 2012
  • Гілка 3 .3. X. На даний момент випущено RC1 і RC2. У даній гілці продовжена переробка механізму «запит-відповідь» (Request/Response), особливо в частині HMVC-запитів.

Відмінність від 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 слід розглядати[4] як різні фреймворки. Основні відмінності версії 3 в порівнянні з 2.х:

  • Змінено організацію файлової системи. Всі класи виділено в директорію класів з підкаталогами model і controller для моделей та контролерів відповідно. Бібліотеки та хелпери в Kohana 3.x зберігаються разом і по суті тепер не відрізняються один від одного.
  • Єдине правило іменування класів. Ім'я будь-якого класу має відповідати директорії, в якій розташований файл цього класу (наприклад, клас Model_Foo_Bar повинен розташовуватися у файлі classes\model\foo\bar.php).
  • Частина функціональності ядра винесена в окремі модулі (наприклад, база даних, ORM), які можна відключати.
  • Кращий контроль над кодом, що виконуються до завантаження фреймворку. У зв'язку з цим з ядра фреймворку були видалені події (Events) і хукі (Hooks).
  • Новий механізм роутінга.
  • Значні зміни в рівнях бази даних і ORM.
  • Можна запустити будь-який контролер і отримати його виведення не тільки по HTTP, але і прямо з коду (зазначивши роути), минаючи протокол HTTP. Це дозволяє винести незалежні блоки генеруємого контенту в окремі контролери, а також спрощує клієнт-серверну взаємодію в AJAX[5][6].

Відмінність 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[7]
  • Початковий реліз
  • Форк від CodeIgniter 1.5.4 (попередній реліз, ревізія 566 в svn)[7]
Kohana 2.0 superlime 2.0 2007-11-08[8]
  • Код повністю переписаний, немає старого успадкованого коду[8][9]
  • Припинено сумісність з PHP4, орієнтація на PHP5[9]
  • Повністю об'єктно-орієнтований програмний каркас[9]
  • У дистрибутив включені модулі[9]
  • Концепція каскадних ресурсів[9]
2.1 Schneefeier 2.1.0 2008-02-05[8]
  • Нові бібліотеки: 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[10]
2.1.1 2008-02-06[8]
  • Виправлена помилка розширення хелперів
  • Додано англійську (UK), німецьку і македонську мови[11]
2.1.2 2008-06-10
  • Додана константа KOHANA_IS_WIN, яка сигналізує про роботу на платформі Windows
  • Численні виправлення помилок[12]
2.2 Efímera 2.2.0 2008-08-08
  • Нові бібліотеки (Captcha)
  • Нові хелпери (upload, format, і т. д.)
  • Нові атрибути конфігурації
  • Нові драйвери (MSSQL, PayPal Pro)
  • Чистка коду, оптимізація і виправлення помилок[13]
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.0 2009-09-17
3.0.1 2009-10-16
3.0.2 2009-11-21
3.0.3 2009-11-23
wyau cwningen 3.0.4 2010-04-04
3.0.5 2010-04-04
sumar hiti 3.0.6 2010-06-07
hattrick 3.0.7 2010-07-11
großen jäger 3.0.8 2010-09-22
nyaåret 3.0.9 2010-12-30
Hierofalco 3.0.10 2011-03-13
vespertinus 3.0.11 2011-05-02
cuvierii 3.0.12 2011-07-24
3.1 merle 3.1.0 2011-02-07
  • Удосконалена робота Request/Response
  • В валідацію додані контексти
  • Видалено модуль Pagination
aesalon 3.1.1 2011-02-16
Hirondelle 3.1.2 2011-04-14
araea 3.1.3 2011-05-02
fasciinucha 3.1.4 2011-07-24
3.2 Kolibri 3.2 2011-07-24
  • Подальше допрацювання механізму Response
  • Змінено принцип роботи з конфігураційними файлами (драйвери на основі класів Kohana_Config_Reader і Kohana_Config_Writer)
3.3 Badius 3.3 2012-10-23
  • Перехід на стандарт PSR-0
  • Підвищення ізольованості HMVC-запитів (Request)
  • Зручніша система обробки виключень
  • Додано модуль Minion

Примітки

  1. Kohana fork from CodeIgniter (англійською). PHP devReview(). 19 липня 2007. Архів оригіналу за 12 березня 2012. Процитовано 17 травня 2010.
  2. Форум CodeIgniter Архівовано 25 березня 2010 у Wayback Machine., червень 2007 р.
  3. Kohana: Download. Архів оригіналу за 16 червня 2012. Процитовано 3 липня 2012.
  4. Kohana проти 2.x 3.x. Архів оригіналу за 6 серпня 2012. Процитовано 28 липня 2012.
  5. КО3: HMVC і роутинг
  6. Робимо простий HMVC-віджет в Kohana3
  7. BlueFlame 1.0 Released!. Архів оригіналу за 1 вересня 2010. Процитовано 17 травня 2010. Текст « CodeIgniter Forums] » проігноровано (довідка)
  8. Архівовано 28 травня 2010 у Wayback Machine. changelog [Kohana User Guide][недоступне посилання з лютого 2019]
  9. Kohana User Guide Архівовано 2009-11-21 у Wayback Machine. [недоступне посилання]
  10. Архівовано 2 липня 2009 у Wayback Machine. changelog: 2.1 [Kohana User Guide][недоступне посилання з лютого 2019]
  11. Архівовано 2 липня 2009 у Wayback Machine. changelog: 2.1.1 [Kohana User Guide][недоступне посилання з лютого 2019]
  12. Архівовано 31 травня 2009 у Wayback Machine. changelog: 2.1.2 [Kohana User Guide][недоступне посилання з лютого 2019]
  13. Архівовано 16 червня 2010 у Wayback Machine. changelog: 2.2 [Kohana User Guide][недоступне посилання з лютого 2019]

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.