CodeКонтролери запалювання, маршрутизація переглядів: навчання на прикладі
⚡ Розумний підсумок
Цей CodeПриклад Igniter створює невеликий застосунок, щоб показати, як маршрутизація, контролери та представлення працюють разом. Новий проект створюється за допомогою Composer, карта маршрутів URLдо методів контролера, і кожен метод завантажує представлення, яке повертає HTML до браузера.
У цьому навчальному посібнику ви вивчите такі теми:
- Маршрутизація – маршрутизація відповідає за реагування на URL запити. Маршрутизація відповідає URL до попередньо визначених маршрутів. Якщо збіг маршруту не знайдено, CodeIgniter викидає виняток «сторінку не знайдено».
- Контролери – маршрути пов’язані з контролерами. Контролери об’єднують моделі та представлення. Вони запитують дані та бізнес-логіку з моделі та повертають результати у вигляді представлення представлення. Після URL було зіставлено з маршрутом, його пересилають до публічної функції контролера. Ця функція взаємодіє з джерелом даних та бізнес-логікою і повертає представлення, яке відображає результати.
- думки – погляди відповідають за презентацію. Перегляд зазвичай є комбінацією HTML, CSS і JavaСкрипт. Ця частина відповідає за відображення веб-сторінки користувачеві. Зазвичай, відображені дані отримуються з бази даних або іншого доступного джерела даних.
Як створити новий CodeПроект «Запальник»
Ми скористаємося Composer для створення нового проєкту. Ми використовуватимемо вбудований сервер PHP, тому не потрібно мати додаткове програмне забезпечення, таке як ApacheУ цьому посібнику ми використовуємо Windows операційну систему, тому ми створили папку Sites на диску C. Ви можете використовувати будь-який зручний для вас каталог.
Відкрийте командний рядок або термінал і виконайте таку команду:
cd C:\Sites
Зараз ми створимо CodeПроект Igniter за допомогою Composer. Виконайте таку команду:
composer create-project CodeIgniter/framework ci-app
тут:
- Наведена вище команда створює новий CodeРозмістіть проект Igniter версії 3, використовуючи останню стабільну версію (3.1.9 на момент написання), у каталог під назвою ci-app.
Після завершення виконання команди ви повинні побачити результати, подібні до наступного, у терміналі:
Виконайте таку команду, щоб перейти до щойно створеного каталогу проекту ci-app:
cd ci-app
Тепер запустіть вбудований вебсервер PHP:
php -S localhost:3000
тут:
- Наведена вище команда запускає вбудований PHP-сервер, що працює на порту 3000.
Відкрийте веббраузер і перейдіть до наступного URL: http://localhost:3000/Ви отримаєте наступну сторінку:
Якщо ви бачите сторінку вище, вітаємо, ви успішно встановили CodeЗапалювачСторінка відтворюється представленням, розташованим у файлі application/views/welcome_message.php, а відповідальний контролер знаходиться у файлі application/controllers/Welcome.php.
CodeМаршрутизація запальника
Наразі наша програма має лише один URL, що є головною сторінкою. У цьому розділі ми налаштуємо головну сторінку та створимо кілька нових URLщо відповідають на різні запити.
Почнемо з маршруту головної сторінки. Відкрийте файл маршрутів за вказаним нижче шляхом:
application/config/routes.php
Ви повинні побачити наступний вміст:
$route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
тут:
- $route['default_controller'] = 'welcome'; визначає контролер за замовчуванням, який відповідає на запити URI.
- $route['404_override'] = ”; дозволяє визначити власний маршрут для помилок 404. Помилка 404 виникає, коли сторінку не знайдено. CodeIgniter має обробник помилки за замовчуванням, але ви можете визначити свій власний, якщо бажаєте.
- $route['translate_uri_dashes'] = FALSE; дозволяє перетворювати дефіси на символи підкреслення. Ми обговоримо цей параметр, коли розглядатимемо, як працюють маршрути в CodeЗапальник.
Давайте тепер розглянемо метод контролера, який відповідає за відображення домашньої сторінки, яку ми бачили під час відкриття. http://localhost:3000/Відкрийте наступний файл:
application/controllers/Welcome.php
Ви повинні побачити наступний код:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
тут:
- defined('BASEPATH') АБО exit('Прямий доступ до скриптів заборонено'); захищає від прямого доступу до класу контролера без проходження через файл index.php. У парадигмі MVC усі запити мають одну точку входу, яка для CodeIgniter — це index.php. Цей код блокує всі запити, які не надходять через index.php.
- Клас Welcome extends CI_Controller {…} визначає клас Welcome, який розширює батьківський клас CI_Controller.
- Публічна функція index() визначає публічну функцію, яка викликається за замовчуванням, коли ви відкриваєте головну сторінку.
- $this->load->view('welcome_message'); завантажує вигляд welcome_message, розташований у файлі application/views/welcome_message.php.
Поки що ми досліджували лише те, що постачається з коробки CodeЗапалювач. Тепер давайте внесемо деякі зміни. Ми створимо власну домашню сторінку та замінимо сторінку за замовчуванням. Створіть новий файл за адресою application/views/home.php та додайте наступний код:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Hello CodeIgniter!</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css"> <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script> </head> <body> <section class="section"> <div class="container"> <h1 class="title"> CodeIgniter Hello World </h1> </div> </section> </body> </html>
тут: Наведений вище HTML-код завантажує CSS-фреймворк Bulma та Font Awesome з CDN та створює дуже простий HTML-документ. Він застосовує просте CSS-правило з CSS-фреймворку Bulma.
Відкрийте наступне URL у вашому браузері: http://localhost:3000/Ви повинні побачити наступне:
Чудово, ми успішно змінили головну сторінку. Далі визначимо наш маршрут. Припустимо, що наш застосунок також має показувати сторінку «Про нас».
Створіть маршрут
Відкрийте файл маршрутів application/config/routes.php та додайте наступний маршрут:
$route['about-us'] = 'welcome/about_us';
тут:
- Коли відвідувач відвідує URL /про-нас, ми навчаємо CodeIgniter для пошуку контролера Welcome та виконання методу about_us.
Створіть контролер
Тепер визначимо метод контролера about_us. Відкрийте application/controllers/Welcome.php та додайте наступний метод:
public function about_us(){
$this->load->view('about_us');
}
тут:
- Наведений вище код визначає функцію about_us та завантажує представлення about_us.
Створіть представлення
Тепер створимо представлення, на яке ми щойно посилалися. Створіть новий файл about_us.php у application/views/about_us.php та додайте наступний код:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>About CodeIgniter!</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css"> <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script> </head> <body> <section class="section"> <div class="container"> <h1 class="title"> About us yap... </h1> </div> </section> </body> </html>
Ми готові. Відкрийте наступне URL у вашому веббраузері: http://localhost:3000/index.php/about-usВи побачите наступну сторінку:
Якщо ви бачите сторінку вище, вітаємо, ви успішно створили просту програму в CodeЗапальник.





