цьом решта - вбудовані модулі CodeIgniter.
Малюнок 2.1 Схема виконан програми 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
адреси має фіксований формат, як показано на Малюнок 2.3. Першів параметром є назва контролера проектом, якому передається управління, далі метод у класі контролера, и остання частина - параметри, Які получит метод контролера.
приклада:
- # justify gt; - # justify gt; Слід зауважіті, что на Малюнок 2.3 после назви сайту не вказано index.php. Як правило, на практике позбуваються использование index.php засобими Web-сервера. Например, для Web-сервера Apache та патенти в Коренєва каталозі проекту (див. Рісунок.2.2) создать файл.htaccess и вписати в цею файл следующие інструкції: on $ 1! ^ (Index .php | images | robots .txt) ^ (. *) $ /index.php/$1 [L]
При цьом Завдяк використанн модулю mod_rewrite встановлюються правила ОБРОБКИ запиту перед передачею его Web-додатка (тут CodeIgniter). А самє: RewriteCond вказує, Які файли пропускаті без ОБРОБКИ (index.php, images, robots.txt), а RewriteRule задає правило, что будь-який запит, крім Вказаною в RewriteCond необходимо модіфікуваті путем Додавання перед ним рядку index.php. Таким чином, CodeIgniter розпізнає вірний формат URL.
МОДЕЛІ
МОДЕЛІ прізначені для про єднання функцій взаємодії Із зовнішнімі Даними (файлами, базами даних) у єдиний клас. Для использование моделі та патенти создать файл PHP візначеної структури (рисунок 2.4) в каталозі/application/models. При чому назви файлу та класу мают співпадаті, а назва класу запісується з Великої літери. Структура класу Включає Назву класу, ознакой Успадкування від універсальної моделі (CI_Model), а такоже конструктор __constructor (), в якому віклікається код батьківського класу. Завантаження моделі з контролера відбувається помощью команди:
$ this- gt; load- gt; model ( Testmodel ); де Testmodel - назва класу моделі.
Лістінг Приклад коду файлу моделі проекту
lt;? phpTestmodel extends CI_Model {__construct ()
{
//Call the Model constructor :: __ construct ();
} get_data ($ id)