Створення движка на mvc. Пишемо роутер.

Відео: 3 урок. PHP ООП. Інтернет-магазин з нуля на PHP. MVC. Роутінг

Створення движка на MVC. Пишемо роутер.

Привіт всім! Ось і настала друга стаття з серії, присвяченій створення движка на MVC. Сьогодні ми створимо роутинг. Поїхали!

Для початку розберемося, як буде працювати наш роутинг. У нас буде єдина точка входу - index.php. Туди будуть відправлятися всі запити. URL буде такого виду:

https://site.ru/controller/method/param

Тобто спочатку буде йти контролер, потім метод, а потім параметри. цей URL розбиратиметься нашим роутером і буде викликатися переданий метод у переданого контролера з параметрами (якщо є).

Думаю, як це буде працювати, ви зрозуміли. Тепер відкриємо файл .htaccess і пропишемо наступне:

RewriteEngineOn
RewriteCond% {REQUEST_FILENAME}!-d
RewriteCond% {REQUEST_FILENAME}!-f
RewriteCond% {REQUEST_FILENAME}!-l
RewriteRule^ (. +)$ index.php?url=$ 1 [QSA,L]

Розберемося, що ми тут написали. Спочатку включаємо движок перезапису, потім задаємо 3 умови: якщо це не фізична директорія, файл або посилання, то беремо весь URL і відправляємо на файл index.php(Нашу єдину точку входу), передавши GET параметр url зі значенням нашого URL.




Тепер що б ви не ввели в адресний рядок, ви завжди будете потрапляти в файл index.php. Давайте перейдемо в цей файл і пропишемо наступне:

lt ;?php
$ url
= $ _GET[`Url`] -
echo $ url
-
?gt;

Тепер ви побачите ваш url. Давайте створимо контролер index.php в папці controllers.

lt ;?php
classIndex{
publicfunction __construct(){
echo
"Ми в контролері INDEX"-
}
}
?gt;

Тепер в нашому головному файлі index.php підключимо його

lt ;?php
$ url
= $ _GET[`Url`] -
echo $ url
-
require_once
`Controllers /`.$ url.`.php`-
$ controller
=new $ url-
?gt;

Тепер ми побачимо напис, яку виводить конструктор нашого класу. Створимо ще один контролер help.php в папці controllers.

Відео: PHP Start | Практика: Урок 2. Реалізація MVC # 2

lt ;?php
classHelp{
publicfunction __construct(){
echo
"Ми в контролері HELP"-
}
}
?gt;



Тепер якщо в адресному рядку після назви сайту (домена) ввести `/ help`, Ви побачите, що спрацював контролер Help.

Отже, думаю, ви зрозуміли, як це працює. Тепер, щоб не затягувати, я приведу відразу готовий код головного файлу index.php, а потім поясню його.

lt ;?php
$ url
= $ _GET[`Url`] -
$ url
= rtrim($ url,`/`) -
$ url
= explode(`/`, $ url) -
require`Controllers /`.$ url[0].`.php`-
$ controller
=new $ url[0] -
if(isset($ url[2])){
$ controller
-gt;$ url[1] ($ url[2]) -
}
else{
if(isset($ url[1])){
$ controller
-gt;$ url[1] () -
}
}
?gt;

Ось такий от вийшов файл index.php. Спочатку ми отримуємо наш url адреса і записуємо його в змінну $ url. Далі наш потрібно видалити останній слеш, інакше у нас буде помилка. Для цього ми скористалися функцією rtrim, куди першим параметром передаємо, що ми хочемо видалити, а другим - де. Після, використовуючи функцію explode ми розбиваємо нашу рядок на масив по Слеш. Тепер першим параметром у нас буде назва контролера, який ми і підключаємо рядком нижче і створюємо його об`єкт. Тепер перевіряємо, чи є параметри. Якщо так, то викликаємо переданий метод і передаємо параметр, а якщо немає, то просто викликаємо наш метод.

Відео: MVC # 02 - Router

Давайте тепер в нашому контролері help.php створимо метод other.

lt ;?php
classHelp{
publicfunction __construct(){
echo
"Ми в контролері HELP"-
}

publicfunction other(){
echo
"Ми в методі other контролера Help"-
}
}
?gt;

Тепер напишемо в адресному рядку наступне: ваш_домен.ru / help / other

І у нас виклик метод other контролера help.

Тепер змінимо наш метод other

lt ;?php
classHelp{
publicfunction __construct(){
echo
"Ми в контролері HELP"-
}

publicfunction other($ arg =false){
echo
"Ми в методі other контролера Help"-
echo
"Параметри:".$ arg-
}
}
?gt;

Тепер в адресному рядку браузера напишемо так: ваш_домен.ru / help / other / 10 У метод передасться 10, і він це виведе.

Отже, ось ми вже й зробили наш роутер робочим. Звичайно, це тільки початок, але воно вже належить. Далі буде тільки цікавіше. Дякую за увагу!

Поділися в соціальних мережах:

Схожі
Створення движка на mvc. Починаємо робити чат.Створення движка на mvc. Починаємо робити чат.
Створення движка на mvc. Створюємо авторизацію.Створення движка на mvc. Створюємо авторизацію.
Створення движка на mvc. Продовжуємо роботу над чатом.Створення движка на mvc. Продовжуємо роботу над чатом.
Створення движка на mvc. Робимо можливість редагування і видалення користувачів.Створення движка на mvc. Робимо можливість редагування і видалення користувачів.
Створення движка на mvc. Допрацьовуємо роутер.Створення движка на mvc. Допрацьовуємо роутер.
Сайт з www і безСайт з www і без
Php: безпека. Підключення файлів.Php: безпека. Підключення файлів.
Створення движка на mvc. Виводимо сторінки. Частина 4.Створення движка на mvc. Виводимо сторінки. Частина 4.
Створення движка на mvc. Вступ.Створення движка на mvc. Вступ.
Створення движка на mvc. Закінчуємо роботу з чатом.Створення движка на mvc. Закінчуємо роботу з чатом.
» » Створення движка на mvc. Пишемо роутер.