Вход Регистрация
Файл: Routing-1.0.0/PositiveCode/Routing/RouteCollection.php
Строк: 62
<?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 RouteCollection extends ArrayObject {
    
/**
     * Конструктор класса
     * @param array $collection Массив рутов
     */
    
public function __construct(array $collection = []) {
        
parent::__construct($collection);
    }
    
/**
     * Возвращает коллекцию роутов в виде массива
     * @return array
     */
    
public function getCollection() {
        return 
$this->getArrayCopy();
    }
    
/**
     * Добавляет роут в коллекцию
     * @param string $name Имя роута
     * @param string $pattern Паттерн роута
     * @param string $handler Обработчик роута
     * @param array $methods Методы запроса роута
     */
    
public function addRoute($name$pattern$handler, array $methods = []) {
        
$this->offsetSet($name, new Route($name$pattern$handler$methods));
    }
    
/**
     * Добавляет обьект роута в коллецию
     * @param string $index Имя роута
     * @param PositiveCodeRoutingRoute $newval Обьект роута
     * @throws InvalidArgumentException
     */
    
public function offsetSet($index$newval) {
        if ( ! 
$newval instanceof Route) {
            throw new 
InvalidArgumentException(sprintf(
                
'Роут "%s" должен реализовывать SystemKernelRoutingRoute'
            
), $index);
        }
        
parent::offsetSet($index$newval);
    }
}
Онлайн: 0
Реклама