Написавши вступ я не вирішив про що писати далі, чи про систему авторизації користувачів чи про генерацію статичних сторінок, обидві теми заслуговують висвітлення перед переходом до головного, то поки розкажу взагальному про особливості кодінг-стайлу (я готую також окрему статтю на рахунок цього, але вона вийде не раніше нового року), правила найменування таблиць і полів в базі даних, загальню структуру папок і трішки про kohana як таку.
Kohana являючись хоча і гнучким фреймворком, але все-таки регламентує свою структуру файлової системи, яку я вирішив притримуватись. Отже файлова система складається з таких ключових елементів:
application
-- cache
-- config
-- controllers
-- helpers
-- hooks
-- i18n
-- libraries
-- logs
-- models
-- views
modules
system
Директорія system дублює структуру application, плюс додана директорія core всередині system. Для рядового розробника це не має значення, в core знаходяться ядро фреймворка (як говорять framework glue), що забезпечує зв'язну і послідовну роботу.
Каскадна файлова система забезпечується автопідключенням Kohana. Можна виділити три рівні системи:
- application: при підключенні файла Kohana дивиться сюди в першу чергу. Якщо файл знайдено, то його загружають і далі пошук файла припиняється.
- modules: якщо файл не був знайдений на рівні application, то проводиться пошук файла в підключених модулях.
- system: якщо до того файл не був знайдений, то Kohana пробує знайти файл в системній директорії.
Дана структура файлів забезпечує легке перевизначення та розширення конкретних класів згідно потреб конкретної аплікації. Єдиним, що слід зауважити: файл config.php повинен знаходитись на рівні application. Всі інші Контролери, Моделі, Вигляди, Конфігураційні файли, Хелпери і Бібліотеки розміщені за бажанням розробника. Малюнок наглядно ілюструє роботу каскадної файлової системи. Клікабельний.