Дисциплины - Объектно-ориентированное программирование

ООП в PHP - Фрэймворк Laravel - Маршрутизация

После установки фрэймворка, определения настроек сервера и приложения, пришло время заняться разработкой.

Решение любой задачи в клиент-серверном приложении построенного в соответсвии с архитектурой MVC (HMVC) начинается с определения маршрута, прослушивающего определенный тип запроса: get, post, put и другие. Маршрут определяется в маршрутизаторе (routes), главная задача которого перенаправить запрос в нужный контроллер.

Маршруты определяются в файле routes/web.php

Простейший маршрут, перехватывающий get-запросы на главную страницу приложения выглядит так:

Route::get('/', function() {
  return 'Hello World';
});

Для перехвата POST-данных можно воспользоваться методом Route::post

Route::post('foo/bar', function() {
  return 'Hello World';
});

Метод Route::any перехватывает и POSTи GET данные.

Route::any('foo', function() {
  return 'Hello World';
});

Для перехвата маршрутов только по протоколу HTTPS, вторым входящим параметром можно передать не функцию, а массив, первым элементом которого является тип протокола, а вторым – функция.

Route::get('foo', array('https', function() {
  return 'Must be over HTTPS';
}));

Для добавления параметров маршрута, можем воспользоваться диррективой фигурных скопок. Рассмотрим добавление к маршруту обязательного параметра id.

Route::get('user/{id}', function($id) {
return 'User '.$id;
});

Добавление к маршруту необязательного параметра name.

Route::get('user/{name?}', function($name = null) {
  return $name;
});

Вместо $name = null можно использовать любое значение по умолчанию.

Использование регулярных выражений в маршрутах.

Route::get('user/{name}', function($name) {
})->where('name', '[A-Za-z]+');
Route::get('user/{id}', function ($id) {
})->where('id', '[0-9]+');

Вместо последовательного вызова метода where, можно передать массив ограничений.

Route::get('user/{id}/{name}', function($name) {
})->where(['name'=>'[A-Za-z]+', ‘id’=>'[0-9]+']);

Если какие-то регулярные выражения нужно связать со всеми параметрами, то можно использовать метод pattern:

public function boot(Router $router)
{
    $router->pattern('id', '[0-9]+');
    parent::boot($router);
}

Таким образом, будет осуществляться проверка всех параметров с именем id.

Задать имя маршруту можно следующим способом:

Route::get('user/profile', array('as' => 'profile', function() {
  //
}));

Вместо collback-функций, маршруты могут ссылаться на экшны контроллера:

Route::get('static', 'StaticController@index');

, где StaticController - имя контроллера (файл StaticController из папки app/http/controllers), а index - имя эшкна (или функции класса StaticController)

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
814301 БГУИР
814302 БГУИР
814303 БГУИР
894351 БГУИР
90421 БГУИР


Изображения Видео

1. Абстрактная фабрика https://www.youtube.com/watch?v=1mVONOCxfLg
2. Фабричный метод https://www.youtube.com/watch?v=5UqUDR6_2cY
3. Шаблон декоратор https://www.youtube.com/watch?v=Lwb9bm8yKD0
4. Dessign patterns on PHP https://github.com/domnikl/DesignPatternsPHP
5. Приёмы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес; [пер. с англ.: А. Слинкин науч. ред.: Н. Шалаев]. — Санкт-Петербург [и др.] : Питер, 2014. — 366 с. : ил. ; 24 см.
6. Приемы объектно-ориентированного проектирования. Паттерны проектирования Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес; [пер. с англ.: А. Слинкин науч. ред.: Н. Шалаев]. — Санкт-Петербург [и др.] : Питер, 2014. — 366 с. : ил. ; 24 см.
7. Ajax http://erud.by/ajax
8. Ajax http://erud.by/ajax
9. Ajax http://erud.by/ajax
10. Документация Laravel http://laravel.com
Задание к курсовой работе
Задание к курсовой работе
Вопросы к экзамену