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) — всі ці значення не мають відношення до назви.
Особливості
Технології
Версії
Гілки розробки
В даний час паралельно розробляються три гілки:[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] |
| |
Kohana | 2.0 | superlime | 2.0 | 2007-11-08[8] | |
2.1 | Schneefeier | 2.1.0 | 2008-02-05[8] |
| |
2.1.1 | 2008-02-06[8] |
| |||
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.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 |
| |
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 |
| |
3.3 | Badius | 3.3 | 2012-10-23 |
|
Примітки
- Kohana fork from CodeIgniter (англійською). PHP devReview(). 19 липня 2007. Архів оригіналу за 12 березня 2012. Процитовано 17 травня 2010.
- Форум CodeIgniter Архівовано 25 березня 2010 у Wayback Machine., червень 2007 р.
- Kohana: Download. Архів оригіналу за 16 червня 2012. Процитовано 3 липня 2012.
- Kohana проти 2.x 3.x. Архів оригіналу за 6 серпня 2012. Процитовано 28 липня 2012.
- КО3: HMVC і роутинг
- Робимо простий HMVC-віджет в Kohana3
- BlueFlame 1.0 Released!. Архів оригіналу за 1 вересня 2010. Процитовано 17 травня 2010. Текст « CodeIgniter Forums] » проігноровано (довідка)
- Архівовано 28 травня 2010 у Wayback Machine. changelog [Kohana User Guide][недоступне посилання з лютого 2019]
- Kohana User Guide Архівовано 2009-11-21 у Wayback Machine. [недоступне посилання]
- Архівовано 2 липня 2009 у Wayback Machine. changelog: 2.1 [Kohana User Guide][недоступне посилання з лютого 2019]
- Архівовано 2 липня 2009 у Wayback Machine. changelog: 2.1.1 [Kohana User Guide][недоступне посилання з лютого 2019]
- Архівовано 31 травня 2009 у Wayback Machine. changelog: 2.1.2 [Kohana User Guide][недоступне посилання з лютого 2019]
- Архівовано 16 червня 2010 у Wayback Machine. changelog: 2.2 [Kohana User Guide][недоступне посилання з лютого 2019]
Посилання
- Офіційний сайт Kohana Web Framework(англ.)
- Сторінка для вибору дистрибутиву(англ.)
- Документація для різних версій(англ.)
- Офіційний форум Kohana Web Framework(англ.)
- Неофіційна документація для Kohana 3(англ.)
- Cristian Gilè (9 липня 2009). Kohana: The Swift PHP Framework (англійською). Net Tuts +. Архів оригіналу за 12 березня 2012. Процитовано 17 травня 2010.
- Російськомовна категорія офіційного форуму Kohana(рос.)
- habrahabr.ru / blogs / kohanaphp — Kohana на Хабрахабрі(рос.)
- Статті по роботі з Kohana 3(рос.)
- Уроки і документація по Kohana 3.2(рос.)