Схема виконання додатку з використанням CodeIgniter

Виконання програми засобами CodeIgniter відбувається через єдиний інтерфейс – програмний файл index.php, який виконує ініціалізацію та застосовує налаштування проекту з конфігураційних файлів, перетворює вхідні дані від користувача на внутрішні структури даних CodeIgniter та передає управління засобам маршрутизації. Останній модуль аналізує вхідні дані HTTP-запиту, а саме: метод HTTP, URL-адресу та заголовки. Якщо сторінка з такими ж вхідними даними вже існує у внутрішньому кеші CodeIgniter, то її вміст повертається без подальшої обробки безпосередньо користувачеві (через Web-сервер). В іншому випадку наступним кроком є фільтрація вхідних даних з метою уникнення несанкціонованих дій з боку можливого зловмисника: екранування даних, вилучення небажаних тегів тощо. Після цього в залежності від URL запит надходить до визначеного контролера додатку. Контролер, в свою чергу, обмінюється даними з моделями (виконує запити до бази даних, файлів тощо), за необхідності викликає бібліотечні та допоміжні функції і, наприкінці, передає дані у подання, де формується кінцева HTML-сторінка, яка передається користувачеві. Графічно дану схему ілюструє (Рисунок 2.1), на якому напівжирним шрифтом виділено ті елементи структури проекту, які кодуються програмістом, при цьому решта – вбудовані модулі CodeIgniter.

Рисунок 2.1 Схема виконання програми Codeigniter Файлова структура проекту Codeigniter

Комплект файлів Codeigniter об’єднується в групи ієрархічно поєднаних каталогів в залежності від функціонального призначення. Головним каталогом додатку є Application. Ядро системи відповідно розташоване у System (рис.2.2).

 

Рисунок 2.2. Файлова структура проекту Codeigniter

Файл іndex.php Модуль маршрутизації Модуль кешування Модуль безпеки вхідних даних Подання додатку Контро- лер додатку Моделі додатку Бібліотеки Допом. функції Розширення HTTP-запит HTTP-відповідь (Рисунок 2.1) Схема виконання програми CodeIgniter

Файлова структура проекту CodeIgniter

Комплект файлів CodeIgniter об‘єднується в групи ієрархічно поєднаних каталогів в залежності від функціонального призначення. Головним каталогом додатку є Application. Ядро системи відповідно розташоване у System (рисунок 2.2).

Конфігураційні файли проекту Контролери проекту Моделі проекту Подання проекту Файли Web-додатку Налаштування з’єднань з БД Налаштування маршрутизації URL Загальні параметри конфігурації Власні бібліотеки розробника Файли перекладу текстових фрагментів Файли ядра CodeIgniter.

З рисунока 2.2 видно, що різноманітні налаштування проекту групуються в окремі файли php, зокрема, налаштування бази даних зберігаються у database.php, маршрутизація URL – у routes.php тощо. Це дозволяє змінювати різноманітні лаштунки безпосередньо в процесі функціонування Web-додатку, не змінюючи склад файлової системи та не запускаючи додаткових командних файлів, що часто буває критичним при використанні орендованого дискового простору на сервері для Web-проектів. Крім того, на рисуноку 2.2 напівжирним шрифтом виділено блоки проекту, які реалізовує безпосередньо програміст. Найголовнішими з них є:

- контролери (controllers), які є точками входу при виконанні обробки відповідного запиту;

- моделі (models), які уніфікують доступ до зовнішніх даних (баз даних, файлів, мережних служб тощо);

- подання (views), які зберігають шаблони Web-сторінок, відокремлюючи дизайн від інформаційного вмісту HTML-документу.

Контролери

Вибір контролера, якому передається управління при обробці запиту користувача, визначається URL-адресою запиту. Типова структура URL-адреси має наступний вигляд (рисунок.2.3):

 

Рисунок 2.3. Формат URL-адреси, що застосовується в CodeIgniter

URL-адреса має фіксований формат, як показано на рисуноку 2.3. Першим параметром є назва контролера проекту, якому передається управління, далі метод у класі контролера, і остання частина – параметри, які отримає метод контролера.

Приклади:

http://example.com/portfolio/latest/5 - клас контролера portfolio, метод контролера latest, 5 – параметр метода.

http://example.com/blog/created - клас контролера blog, метод контролера created, без параметрів.

Слід зауважити, що на рисуноку 2.3 після назви сайту не вказано index.php. Як правило, на практиці позбуваються використання index.php засобами Web-сервера. Наприклад, для Web-сервера Apache необхідно в кореневому каталозі проекту (див. Рисунок.2.2) створити файл .htaccess і вписати в цей файл наступні інструкції:

RewriteEngine on