Вход Регистрация
Файл: Routing-1.0.0/PositiveCode/Routing/Routing.php
Строк: 34
<?php
/**
 * PositiveCode Tools
 *
 * @author KpuTuK <bykputuk@ya.ru>
 * @copyright Copyright (c) 2016, PositiveCode Team
 * @license MIT License
 */

namespace PositiveCodeRouting;

/**
 * Сервис роутинга
 * @author KpuTuK <bykputuk@ya.ru>
 * @version 1.0.0
 * @package PositiveCode Tools
 */
class Routing
{

    
/**
     * Обьект коллекции роутов
     * @var PositiveCodeRoutingRouteCollection 
     */
    
protected $collection;
    
/**
     * Полный путь к классу кеша
     * @var string
     */
    
protected $cachePath;
    
/**
     * Пространство имен класса кеша
     * @var string
     */
    
protected $cacheNamespace;
    
/**
     * Создает обьект сервиса роутинга с указанными параметрами
     * @param PositiveCodeRoutingRouteCollection $collection Обьект коллекции роутов
     * @param string $cachePath Полный путь к классу кеша
     * @param string $cacheNamespace Пространство имен класса кеша
     */
    
public function __construct(
        
RouteCollection $collection$cachePath$cacheNamespace
    
) {
        
$this->cachePath $cachePath;
        
$this->cacheNamespace $cacheNamespace;
        
$this->collection $collection;
    }
    
/**
     * Обрабатывает uri по зарание заданному роуту
     * @param string $uri Uri
     * @param string $method Метод запроса
     * @return array Массив данных роута
     */
    
public function match($uri$method 'GET')
    {
        if ( ! 
file_exists($this->cachePath)) {
            (new 
RouteDumper(
                
$this->collection$this->cachePath$this->cacheNamespace
            
))->dumpClass();
        }
        
$class $this->cacheNamespace '\' . basename($this->cachePath, '.php');
        return (new $class())->match($uri, $method);
    }

}
Онлайн: 0
Реклама