Створення програми на Kohana
WEB програмування від А до Я
Замовити сайт:
Соціальні мережі:
Створення програми на Kohana. Частина 1
Доброго вам дня! І ми з Вами продовжуємо вивчати фреймворк Kohana. Ми вже з Вами розібралися як встановити Kohana, розглянули тут і тут принцип роботи Kohana, вивчили роути в Kohana, навчилися налаштовувати цей фреймворк. Тепер час настав реалізувати отримані дані практично. Давайте приступимо.
Ми створюватимемо бібліотеку книг. Наш додаток буде складатися з двох частин: frontend - безпосередньо сама програма, доступна для користувача і backend - адміністративна частина. Домовимося: все що ставитися до адміністративної частини буде перебувати в папці admin, так наприклад контролери для backend частини будуть розміщуватися в ./application/classes/controller/admin, а уявлення в ./application/views/admin. Почнемо створювати наш додаток і перше, що ми зробимо – це базовий клас. Створимо в ./application/classes/controller файл base.php і помістимо туди наступний код:
визначаємо базовий шаблон. У даному контролері ми використовуємо метод before. Метод before - це спеціальний метод, який буде викликатись перед виконанням будь-якого action даного контролера. У методі before ми передаватимемо в шаблон деякі значення змінних:
- $site_name - назва сайту
- $site_description - опис нашого сайту
- $page_title - заголовок сторінки
- у змінну нашого шаблону style будемо передавати назву нашого CSS файлу
- у змінну шаблону scripts будемо передавати назви наших javascript файлів
Навіщо це треба? Це потрібно для того, щоб у кожному контролері не повторювати код. А як вирозумієте назву сайту, опис сайту змінюватися не буде, так само не змінюватиметься і базовий шаблон. А інші контролери нашої програми вже будуть успадковувати цей базовий контролер. Сумбурно? Нічого страшного під час написання нашої програми на Kohana все ляже по своїх місцях і Ви зрозумієте наскільки це просто і зручно. Тепер давайте створимо базове уявлення base.php в папці ./application/views Я попередньо підготував верстку нашої програми і на цьому я не зупинятимуся. Кому цікаво вихідник верстки перебувати тут чи тут. І помістимо до нього наступний код:
Ми підключаємо файли CSS. Конструкція html::style - це хелпер, про які ми поговоримо в іншій статті. Файли скриптів підключаються за аналогією з підключенням CSS файлів, тільки використовуємо html::script хелпер. У рядках:
ми підключаємо виведення title для сторінки. За аналогією ми підключаємо і контент. Давайте до нашої програми додамо картинки та файл стилів. Для цього в корені нашого сайту створимо папку media, в якій створимо директорії css для файлів стилів, img для картинок і js для файлів скриптів. У папку css помістимо файл style.css наступного змісту
Описувати файл стилів я не буду – не наше завдання. Тепер цей стиль нам треба підключити до базового контролера:
А в папку img додамо наші картинки, які стосуються дизайну. Перевіримо, що в нас вийшло. Відкриємо файл index.php, який знаходиться в ./application/classes/controller та змінимо його на:
Тобто. ми створюємо контролер index, який успадковує всі властивості та методи контролера base (class Controller_Index extends Controller_Base). Створюємо екшн index, в якому:
- Передаємо у наш шаблон змінну page_title зі значенням “Головна сторінка” ($this->template->page_title = 'Головна сторінка' )
- Передаємо в змінну content нашого базового шаблону шаблон index і в нього змінну text зі значенням “Привіт” ($this->template->content = View::factory('index',array ('text'=>'Привіт) ', ));)
Тепер необхідно створити шаблон index у ./application/views, який ми викликаємо у нашому контролері, наступного змісту:
Думаю, тут пояснювати нічого не треба. Перевіримо, що в нас вийшло. Переходимо на Ваш сайт (у моєму випадку це books) і бачимо:

В нас все працює. На цьому цей пост я закінчую. Головне, що Ви повинні винести з цієї статті:
- Створення базового контролера, щоб уникнути надлишкового, повторюваного коду.
- Створення базового шаблону.
- Принцип роботи функції before
А у наступній статті ми зупинимося на роботі з базою даних. Тож не пропускайте виходу нових постів, підписавшись на мій блог. Завантажити вихідний код можна звідси або звідси.