2 min read
Серія записок безумного архітєктора.

Написавши вступ я не вирішив про що писати далі, чи про систему авторизації користувачів чи про генерацію статичних сторінок, обидві теми заслуговують висвітлення перед переходом до головного, то поки розкажу взагальному про особливості кодінг-стайлу (я готую також окрему статтю на рахунок цього, але вона вийде не раніше нового року), правила найменування таблиць і полів в базі даних, загальню структуру папок і трішки про kohana як таку.

Kohana являючись хоча і гнучким фреймворком, але все-таки регламентує свою структуру файлової системи, яку я вирішив притримуватись. Отже файлова система складається з таких ключових елементів:

index.php
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. Всі інші Контролери, Моделі, Вигляди, Конфігураційні файли, Хелпери і Бібліотеки розміщені за бажанням розробника. Малюнок наглядно ілюструє роботу каскадної файлової системи. Клікабельний.