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Проект «Запальник»

Якщо ви бачите сторінку вище, вітаємо, ви успішно встановили 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'] = 'вітаємо'; визначає контролер за замовчуванням, який відповідає на запити URI
  • $route['404_override'] = ”; цей маршрут дозволяє визначити власний маршрут для помилок 404. Помилка 404 виникає, коли сторінку не знайдено. CodeIgniter має обробник помилки за замовчуванням, але ви можете визначити свій власний, якщо хочете.
  • $route['translate_uri_dashes'] = FALSE; цей параметр дозволяє перетворювати дефіси на символи підкреслення. Ми поговоримо про цей параметр, коли розглядатимемо, як працюють маршрути в CodeЗапальник.

Давайте тепер розглянемо метод контролера, який відповідає за відображення головної сторінки, яку ми бачили, коли відкривали URL 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');
	}
}

ТУТ,

  • Визначено ('BASEPATH') АБО exit('Прямий доступ до скриптів заборонено'); захищає від прямого доступу до класу контролера без проходження через файл index.php. Пам'ятайте, що в парадигмі MVC усі запити мають одну точку входу, і для CodeIgniter, його index.php. Цей код блокує всі запити, що не надходять через index.php
  • class Welcome extends CI_Controller {…} визначає клас Welcome, який розширює батьківський клас CI_Controller
  • публічна функція index() визначає публічну функцію, яка викликається за замовчуванням, коли ви відкриваєте домашню сторінку
  • $this->load->view('welcome_message'); цей рядок завантажує подання Welcome_message. Файл welcome_message знаходиться в каталозі application/views/welcome_message.php

Поки що ми досліджували лише те, що постачається з коробки CodeIgniter, давайте тепер спробуємо внести деякі зміни. Ми створимо нашу домашню сторінку та замінимо сторінку за замовчуванням

Створіть новий файл у application/views/home.php

Додайте наступний код до 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-код завантажує фреймворк Burma SSS і шрифт із мережі CDN створює дуже простий HTML-документ. Він застосовує дуже просте правило CSS із фреймворку CSS Burma.

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

Ви повинні побачити наступне

CodeМаршрутизація запальника

Чудово, ми щойно успішно змінили домашню сторінку. Рухаємось далі, визначимо наш маршрут. Припустімо, що наша програма також повинна мати можливість показувати сторінку про нас.

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

Відкрийте файл маршрутів application/config.routes.php

Додайте наступний маршрут

$route['about-us'] = 'welcome/about_us';

ТУТ,

  • Коли відвідувач відвідує URL /про-нас, ми навчаємо CodeIgniter для пошуку контролера Welcome та виконання методу about_us.

Створіть контролер

Давайте тепер визначимо метод контролера про нас

Відкрийте додаток/контролери/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Запалювач

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

Резюме

У цьому посібнику ми розглянули три (3) основні компоненти, з яких складається CodeЗастосунок Igniter. Ми розглянули маршрути та як їх визначати, контролери та як створювати методи, що реагують на запити маршрутів, а також створили прості представлення, які повертаються користувачам, коли вони запитують ресурс.

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