Контролери на CodeIgniter, маршрутизиране на изгледи: Научете с Примерно приложение
В този урок ще научите следните теми.
- Routing – маршрутизирането е отговорно за отговора на URL заявки. Маршрутизирането съпоставя URL адреса с предварително дефинираните маршрути. Ако не бъде намерено съвпадение на маршрут, CodeIgniter хвърля изключение за страница, която не е намерена.
- Контрольори – маршрутите са свързани с контролери. Контролерите залепват моделите и изгледите заедно. Заявката за данни/бизнес логика от модела и връщане на резултатите в представянето на изгледа. След като URL адрес бъде съпоставен с маршрут, той се препраща към публичната функция на контролера. Тази функция взаимодейства с източника на данни, бизнес логиката и връща изгледа, който показва резултатите.
- Прегледи – възгледите отговарят за представянето. Изгледът обикновено е комбинация от HTML, CSS и JavaСкрипт. Това е частта, която отговаря за показването на уеб страницата на потребителя. Обикновено показаните данни обикновено се извличат от базата данни или други налични източници на данни.
Как да създадете нов проект на CodeIgniter
Ще използваме Composer, за да създадем нов проект. Ще използвам вградения в PHP сървър, така че не е необходимо да имам допълнителен софтуер като напр Apache. В този урок ние използваме Windows операционна система. Затова създадохме папка „Сайтове“ на устройство C. Можете да използвате всяка директория, която е подходяща за вас.
Отворете командния ред/терминал и изпълнете следната команда
cd C:\Sites
Сега ще създадем проект на CodeIgniter с помощта на Composer. Изпълнете следната команда
composer create-project CodeIgniter/framework ci-app
ТУК,
- Горната команда създава нов проект CodeIgniter версия 3, като използва най-новата стабилна версия, т.е. 3.1.9 в директория ci-app.
Когато командата по-горе приключи, трябва да можете да получите резултати, подобни на следните в терминала
Изпълнете следната команда, за да прегледате новосъздадената директория на проекта ci-app
cd ci-app
Нека сега стартираме вградения в PHP уеб сървър
php -S localhost:3000
ТУК,
- Горната команда стартира вградения PHP сървър, работещ на порт 3000.
Отворете уеб браузъра и прегледайте следния URL адрес: http://localhost:3000/
Ще получите следната страница
Ако можете да видите горната страница, тогава поздравления, успешно сте инсталирали CodeIgniter.
Както можете да прочетете от горната уеб страница, страницата, показана по-горе, се изобразява от изгледа, намиращ се в application/views/welcome_message.php, а отговорният контролер се намира в application/controllers/Welcome.php
Маршрутизиране на CodeIgniter
Засега нашето приложение има само един 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; тази опция ви позволява да превеждате тирета в долни черти. Ще говорим за тази опция, когато разгледаме как работят маршрутите в CodeIgniter.
Нека сега разгледаме метода на контролера, отговорен за показването на началната страница, която видяхме, когато отворихме 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') ИЛИ изход ('Не е разрешен директен достъп до скрипта'); предпазва от директен достъп до класа на контролера, без да преминава през файла 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 рамката на Бирма.
Отворете следния URL адрес в браузъра си: http://localhost:3000/
Трябва да можете да видите следното
Страхотно, току-що успешно променихме началната страница. Продължавайки, нека определим нашия маршрут. Да приемем, че нашето приложение също трябва да може да показва страницата за нас.
Създаване на маршрут
Отворете файла с маршрути application/config.routes.php
Добавете следния маршрут
$route['about-us'] = 'welcome/about_us';
ТУК,
- Когато посетител посети URL адреса /about-us, ние инструктираме CodeIgniter да търси контролер Welcome и да изпълни метода 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
Ще видите следната страница
Ако можете да видите горната страница, тогава поздравления, успешно сте създали просто приложение в CodeIgniter.
Oбобщение
В този урок разгледахме три (3) основни компонента, които изграждат приложение CodeIgniter. Разгледахме маршрути и как да ги дефинираме, контролери и как да създадем методи, които отговарят на заявки за маршрути и създадохме прости изгледи, които се връщат на потребителите, когато поискат ресурс.