CodeКонтролери запалювання, маршрутизація переглядів: навчання на прикладі

⚡ Розумний підсумок

Цей CodeПриклад Igniter створює невеликий застосунок, щоб показати, як маршрутизація, контролери та представлення працюють разом. Новий проект створюється за допомогою Composer, карта маршрутів URLдо методів контролера, і кожен метод завантажує представлення, яке повертає HTML до браузера.

  • 🧭 Маршрутизація: Маршрути відповідають URL до методу контролера та неперевершеного URL викликає помилку «сторінку не знайдено».
  • 🎛️ Контролери: Метод контролера відповідає на маршрут, запитує дані та повертає представлення (view).
  • 🖼️ переглядів: Представлення поєднує HTML, CSS та JavaСкрипт для представлення результату користувачеві.
  • 📦 Налаштування проекту: Composer створює проєкт, а вбудований PHP-сервер запускає його локально.
  • ???? Маршрут за замовчуванням: default_controller встановлює домашню сторінку, а 404_override встановлює власну сторінку помилки.
  • Користувацький маршрут: Маршрут, подібний до about-us, відображається в методі about_us контролера Welcome.
  • 🔁 Повний потік: URL перенаправити до контролера для перегляду, а потім HTML назад до браузера.

CodeКонтролери та вікна запалювання

У цьому навчальному посібнику ви вивчите такі теми:

  • Маршрутизація – маршрутизація відповідає за реагування на 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.

Після завершення виконання команди ви повинні побачити результати, подібні до наступного, у терміналі:

Композитор створює нове CodeПроект «Запальник»

Виконайте таку команду, щоб перейти до щойно створеного каталогу проекту ci-app:

cd ci-app

Тепер запустіть вбудований вебсервер PHP:

php -S localhost:3000

тут:

  • Наведена вище команда запускає вбудований PHP-сервер, що працює на порту 3000.

Відкрийте веббраузер і перейдіть до наступного URL: http://localhost:3000/Ви отримаєте наступну сторінку:

CodeСторінка привітання за замовчуванням Igniter

Якщо ви бачите сторінку вище, вітаємо, ви успішно встановили 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/Ви повинні побачити наступне:

індивідуальні умови CodeГоловна сторінка запальника

Чудово, ми успішно змінили головну сторінку. Далі визначимо наш маршрут. Припустимо, що наш застосунок також має показувати сторінку «Про нас».

Створіть маршрут

Відкрийте файл маршрутів 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Сторінка про нас Igniter

Якщо ви бачите сторінку вище, вітаємо, ви успішно створили просту програму в CodeЗапальник.

Поширені запитання

Запис маршруту відображає URL сегмент до контролера та методу, наприклад, «вітаємо/про_нас». Коли це URL запитується, CodeIgniter запускає іменований метод, який завантажує та повертає представлення (view).

Він встановлює контролер, який обробляє корінь сайту, коли немає певного URL дається. У прикладі «welcome» означає, що головна сторінка обслуговується методом index контролера Welcome.

Ні. Вбудованого PHP-сервера, запущеного з php -S localhost:3000, достатньо для локального запуску прикладу. Apache або Nginx потрібні лише для розгортання у продакшені.

Так. З опису сторінки ШІ може записати запис маршруту, метод контролера та відповідний вигляд, зберігаючиping узгоджені імена. Перевірте шляхи зі своїми CodeВерсія із запальником.

У цьому прикладі використовується CodeIgniter 3, який зберігає контролери та представлення у файлі application/. CodeIgniter 4 реструктуризував каталоги та простори імен, тому шляхи та синтаксис відрізняються в новіших проектах.

Підсумуйте цей пост за допомогою: