CodeКонтроллеры Igniter, маршрутизация представлений: обучение на примерах.
⚡ Умное резюме
Эта CodeВ примере Igniter создается небольшое приложение, демонстрирующее взаимодействие маршрутизации, контроллеров и представлений. Создается новый проект с помощью Composer, маршрутизация отображается. URLметоды контроллера, и каждый метод загружает представление, которое возвращает HTML в браузер.

В этом уроке вы изучите следующие темы:
- Фрезеровка – маршрутизация отвечает за реагирование на URL запросы. Маршрутизация соответствует URL к предопределенным маршрутам. Если совпадение с маршрутом не найдено, CodeIgniter выдает исключение "страница не найдена".
- Контроллеры – Маршруты связаны с контроллерами. Контроллеры связывают модели и представления. Они запрашивают данные и бизнес-логику у модели и возвращают результаты в представлении. После этого URL Если полученное сообщение соответствует маршруту, оно перенаправляется в публичную функцию контроллера. Эта функция взаимодействует с источником данных и бизнес-логикой и возвращает представление, отображающее результаты.
- Виды – представления отвечают за представление. Представление обычно представляет собой комбинацию HTML, CSS и JavaСкрипт. Эта часть отвечает за отображение веб-страницы пользователю. Как правило, отображаемые данные извлекаются из базы данных или другого доступного источника данных.
Как создать новый CodeПроект «Зажигатель»
Для создания нового проекта мы будем использовать Composer. Мы будем использовать встроенный в PHP сервер, поэтому дополнительное программное обеспечение не потребуется. ApacheВ этом уроке мы используем Windows В зависимости от операционной системы мы создали папку «Сайты» на диске 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 возникает, когда страница не найдена. CodeВ Igniter есть обработчик ошибок по умолчанию, но при желании вы можете определить свой собственный.
- Параметр `$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') OR exit('No direct script access allowed'); защищает от прямого доступа к классу контроллера без прохождения через файл index.php. В парадигме MVC все запросы имеют единую точку входа, что для CodeIgniter — это index.php. Этот код блокирует все запросы, которые не проходят через index.php.
- Класс Welcome extends CI_Controller {…} определяет класс Welcome, который наследует родительский класс CI_Controller.
- Функция `public function index()` определяет общедоступную функцию, которая вызывается по умолчанию при открытии главной страницы.
- Функция `$this->load->view('welcome_message');` загружает представление `welcome_message`, расположенное в файле `application/views/welcome_message.php`.
Пока мы изучили только то, что поставляется в комплекте. CodeIgniter. Давайте теперь внесем некоторые изменения. Мы создадим собственную домашнюю страницу и заменим страницу по умолчанию. Создайте новый файл в папке 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 /about-us, мы инструктируем 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Воспламенитель.




