Kohana (вимовляється «кохана» або «когана»; раніша назва — Blue Flame) — вебфреймворк на мові PHP з відкритим кодом, який використовує архітектурну модель MVC (). Його мета — бути безпечним, легким і простим у використанні.
Історія
Проект Kohana був створений як відгалуження PHP-фреймворку CodeIgniter під назвою Blue Flame. Головною причиною форку був перехід до відкритішої для громадськості моделі розробки, оскільки багато користувачів були невдоволені швидкістю розробки і виправлення помилок у CodeIgniter. Рік Елліс () — творець і власник CodeIgniter — радо зустрів відгалуження від свого проекту, але допомагати відмовився; він підштовхнув новий проект до створення власної документації і порадив перейменувати проект.Форум CodeIgniter , червень 2007 р. В липні 2007 Blue Flame був перейменований в Kohana для того, щоб уникнути проблем з авторськими правами в майбутньому.
Назва «Kohana» було вибрано, коли розробники почали переглядати словники корінних американців для того, щоб вибрати слово, яке не порушувало б авторського права. Kohana мовою Сіу означає «швидкий». Українською вимова назви Kohana — «кохана» — означає та, яку кохають, палко люблять. Також в японській мові має значення «маленька квітка», та ім'я відомої касатки (Kohana) — всі ці значення не мають відношення до назви.
Особливості Висока безпека Екстремальна легкість Легкий у розумінні Використовує MVC-модель Повна сумісність з UTF-8 Дуже легко розширюється
Технології Суворе ООП, реалізоване на PHP5 Проста абстракція бази даних з використанням SQL-драйверів
Версії
Гілки розробки
В даний час паралельно розробляються три гілки:
Гілка 3 .1. X. Поточна стабільна версія 3.1.4. Офіційно підтримувалася до лютого 2012 р. Проте, оскільки версія 3.1.4 була випущена в липні 2011 р., очікується ще як мінімум один мінорний реліз із закриттям відомих багів. Гілка 3 .2. X. Рекомендується для створення нових програм. Поточна стабільна версія 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 слід розглядати як різні фреймворки. Основні відмінності версії 3 в порівнянні з 2.х:
Змінено організацію файлової системи. Всі класи виділено в директорію класів з підкаталогами model і controller для моделей та контролерів відповідно. Бібліотеки та хелпери в Kohana 3.x зберігаються разом і по суті тепер не відрізняються один від одного. Єдине правило іменування класів. Ім'я будь-якого класу має відповідати директорії, в якій розташований файл цього класу (наприклад, клас Model_Foo_Bar повинен розташовуватися у файлі classes\model\foo\bar.php). Частина функціональності ядра винесена в окремі модулі (наприклад, база даних, ORM), які можна відключати. Кращий контроль над кодом, що виконуються до завантаження фреймворку. У зв'язку з цим з ядра фреймворку були видалені події (Events) і хукі (Hooks). Новий механізм роутінга. Значні зміни в рівнях бази даних і ORM. Можна запустити будь-який контролер і отримати його виведення не тільки по HTTP, але і прямо з коду (зазначивши роути), минаючи протокол HTTP. Це дозволяє винести незалежні блоки генеруємого контенту в окремі контролери, а також спрощує клієнт-серверну взаємодію в AJAX .
Відмінність 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 Початковий реліз Форк від CodeIgniter 1.5.4 (попередній реліз, ревізія 566 в svn) Kohana 2.0 superlime 2.0 2007-11-08 Код повністю переписаний, немає старого успадкованого кодуKohana User Guide Припинено сумісність з PHP4, орієнтація на PHP5 Повністю об'єктно-орієнтований програмний каркас У дистрибутив включені модулі Концепція каскадних ресурсів 2.1 Schneefeier 2.1.0 2008-02-05 Нові бібліотеки: 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 2.1.1 2008-02-06 Виправлена помилка розширення хелперів Додано англійську (UK), німецьку і македонську мови 2.1.2 2008-06-10 Додана константа KOHANA_IS_WIN, яка сигналізує про роботу на платформі Windows Численні виправлення помилок 2.2 Efímera 2.2.0 2008-08-08 Нові бібліотеки (Captcha) Нові хелпери (upload, format, і т. д.) Нові атрибути конфігурації Нові драйвери (MSSQL, PayPal Pro) Чистка коду, оптимізація і виправлення помилок 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 Додано кешування для виглядів() 3.0 Renaissance 3.0.0 2009-09-17 Код повністю переписано. Немає сумісності з застосунками, написаними для 2.х. Архітектура відповідає шаблону проектування HMVC Додана нова функціональність ядра Всі хелпери і бібліотеки є класами 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
Примітки
Посилання Офіційний сайт Kohana Web Framework Сторінка для вибору дистрибутиву Документація для різних версій Офіційний форум Kohana Web Framework Неофіційна документація для Kohana 3
Російськомовна категорія офіційного форуму Kohana habrahabr.ru / blogs / kohanaphp — Kohana на Хабрахабрі Статті по роботі з Kohana 3 Уроки і документація по Kohana 3.2