Вход Регистрация
» Название:

Routing


» Описание:

Routing

1 Назначение

Маршрутизация uri по зарание заданным маршрутам (роутам)

2 Примеры

2.1 Маршруты

Маршруты задаются с помощью класса PositiveCode\Routing\Route или метода PositiveCode\Routing\RouteCollection::addRoute()

// Массив роутов
$routes = [
// Роут с указанием имени, паттерна, контроллера
'home' => new \PositiveCode\Routing\Route('home', '/', 'PositiveCode\CMF\Controller@getHome'),
// Роут с указанием имени, паттерна, контроллера, методов запроса
'home' => new \PositiveCode\Routing\Route(
'home', '/', 'PositiveCode\CMF\Controller@getHome', ['GET', 'POST']
),
// Роут с указанием имени, паттерна, контроллера, метдов запроса, дополнительных параметров
'home' => new \PositiveCode\Routing\Route(
'home', '/', 'PositiveCode\CMF\Controller@getHome', ['GET', 'POST'], ['isHome' => true]
)
];

// C помощью метода PositiveCode\Routing\RouteCollection::addRoute()
$collection = new PositiveCode\Routing\RouteCollection();
// Маршрут с указанием имени, паттерна, контроллера
$collection->addRoute('home', '/', 'PositiveCode\CMF\Controller@getHome');
// Маршрут с указанием имени, паттерна, контроллера, методов запроса
$coolection->addRoute('home', '/', 'PositiveCode\CMF\Controller@getHome', ['GET', 'POST']);
// Маршрут с указанием имени, паттерна, контроллера, метдов запроса, дополнительных параметров
$collection->addRoute(
'home', '/', 'PositiveCode\CMF\Controller@getHome', ['GET', 'POST'], ['isHome' => true']
);
2.2 Коллекция маршрутов

Коллекция маршрутов создается с помощью класса PositiveCode\Routing\RouteCollection

// Создание экземпляра коллекции с массивом маршрутов
$collection = new PositiveCode\Routing\RouteCollection($routes);
// Добавление маршрута с помощью "магии" php
$coolection['home'] = new \PositiveCode\Routing\Route('home', '/', 'PositiveCode\CMF\Controller@getHome');
// Добавление маршрута с помощью метода PositiveCode\Routing\RouteCollection::addRoute()
$collection->addRoute('home', '/', 'PositiveCode\CMF\Controller@getHome');
// Получаем коолекцию маршрутов в виде массива
$collection->getCollection();
2.3.1 Старт роутинга отдельной библиотекой

// Иницилируем роутинг с заданной коллекцией, директорией кеша и пространством имен кеша
$routing = new PositiveCode\Routing\Routing(
$collection, 'rootpath/Application/Cache/ClassCache', 'Application\Cache\ClassCache'
);
// Обрабатываем маршрут запроса $_SERVER['REQUEST_URI'] = /
$data = $routing->match($_SERVER['REQUEST_URI'], $_SERVER['REQUEST_METHOD']);
// array(3) {'name' = 'home', 'handler' => 'PositiveCode\CMF\Controller@getHome', 'params' => [] }
var_dump($data);
2.3.2 Старт роутинга с помощью контейнера сервисов PositiveCode\ServiceLocator

// Иницилизируем контейнер
$container = new \PositiveCode\ServiceLocator\ServiceContainer();
// Иницилируем сервис роутинга с заданной коллекцией, директорией кеша и пространством имен кеша
$container->addServiceProvider(new PositiveCode\Routing\RoutingService(
$collection, 'rootpath/Application/Cache/ClassCache/', 'Application\Cache\ClassCache'
)) ;
// Обрабатываем маршрут запроса $_SERVER['REQUEST_URI'] = /
$data = $container['routing']->match($_SERVER['REQUEST_URI'], $_SERVER['REQUEST_METHOD']);
// array(3) {'name' = 'home', 'handler' => 'PositiveCode\CMF\Controller@getHome', 'params' => [] }
var_dump($data);


» Выгрузил: * KpuTuK (Adm) (16 Окт 2016 в 19:23)
» Скачали: 15 раз(a)
» Последнее скачивание: 13 Окт 2021 в 11:27
» Размер: 8.26 KB
» Рейтинг: (+2/-0)
» Импорт:

» Ссылка на файл:

Комментарии
* 3KZO (26 Ноября 2016 в 03:28)
Gromsi, нормальные люди пишут, а не ищут)
| жалоба
* Gromsi (17 Окт 2016 в 12:28)
Нормуль, как оаз искал норм систему))
| жалоба
Комментировать файлы можно с уровня Продвинутый
Онлайн: 2
Реклама