Створення програми на 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, в якому:

  1. Передаємо у наш шаблон змінну page_title зі значенням “Головна сторінка” ($this->template->page_title = 'Головна сторінка' )
  2. Передаємо в змінну content нашого базового шаблону шаблон index і в нього змінну text зі значенням “Привіт” ($this->template->content = View::factory('index',array ('text'=>'Привіт) ', ));)

Тепер необхідно створити шаблон index у ./application/views, який ми викликаємо у нашому контролері, наступного змісту:

Думаю, тут пояснювати нічого не треба. Перевіримо, що в нас вийшло. Переходимо на Ваш сайт (у моєму випадку це books) і бачимо:

Kohana

В нас все працює. На цьому цей пост я закінчую. Головне, що Ви повинні винести з цієї статті:

  1. Створення базового контролера, щоб уникнути надлишкового, повторюваного коду.
  2. Створення базового шаблону.
  3. Принцип роботи функції before

А у наступній статті ми зупинимося на роботі з базою даних. Тож не пропускайте виходу нових постів, підписавшись на мій блог. Завантажити вихідний код можна звідси або звідси.