Контролери на 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.

Когато командата по-горе приключи, трябва да можете да получите резултати, подобни на следните в терминала

Създайте нов проект на CodeIgniter

Изпълнете следната команда, за да прегледате новосъздадената директория на проекта ci-app

cd ci-app

Нека сега стартираме вградения в PHP уеб сървър

 php -S localhost:3000

ТУК,

  • Горната команда стартира вградения PHP сървър, работещ на порт 3000.

Отворете уеб браузъра и прегледайте следния URL адрес: http://localhost:3000/

Ще получите следната страница

Създайте нов проект на CodeIgniter

Ако можете да видите горната страница, тогава поздравления, успешно сте инсталирали 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/

Трябва да можете да видите следното

Маршрутизиране на CodeIgniter

Страхотно, току-що успешно променихме началната страница. Продължавайки, нека определим нашия маршрут. Да приемем, че нашето приложение също трябва да може да показва страницата за нас.

Създаване на маршрут

Отворете файла с маршрути 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

Ако можете да видите горната страница, тогава поздравления, успешно сте създали просто приложение в CodeIgniter.

Oбобщение

В този урок разгледахме три (3) основни компонента, които изграждат приложение CodeIgniter. Разгледахме маршрути и как да ги дефинираме, контролери и как да създадем методи, които отговарят на заявки за маршрути и създадохме прости изгледи, които се връщат на потребителите, когато поискат ресурс.