Вход Регистрация
Файл: system/vendor/nikic/fast-route/src/functions.php
Строк: 76
<?php

namespace FastRoute;

if (!
function_exists('FastRoutesimpleDispatcher')) {
    
/**
     * @param callable $routeDefinitionCallback
     * @param array $options
     *
     * @return Dispatcher
     */
    
function simpleDispatcher(callable $routeDefinitionCallback, array $options = [])
    {
        
$options += [
            
'routeParser' => 'FastRoute\RouteParser\Std',
            
'dataGenerator' => 'FastRoute\DataGenerator\GroupCountBased',
            
'dispatcher' => 'FastRoute\Dispatcher\GroupCountBased',
            
'routeCollector' => 'FastRoute\RouteCollector',
        ];

        
/** @var RouteCollector $routeCollector */
        
$routeCollector = new $options['routeCollector'](
            new 
$options['routeParser'], new $options['dataGenerator']
        );
        
$routeDefinitionCallback($routeCollector);

        return new 
$options['dispatcher']($routeCollector->getData());
    }

    
/**
     * @param callable $routeDefinitionCallback
     * @param array $options
     *
     * @return Dispatcher
     */
    
function cachedDispatcher(callable $routeDefinitionCallback, array $options = [])
    {
        
$options += [
            
'routeParser' => 'FastRoute\RouteParser\Std',
            
'dataGenerator' => 'FastRoute\DataGenerator\GroupCountBased',
            
'dispatcher' => 'FastRoute\Dispatcher\GroupCountBased',
            
'routeCollector' => 'FastRoute\RouteCollector',
            
'cacheDisabled' => false,
        ];

        if (!isset(
$options['cacheFile'])) {
            throw new 
LogicException('Must specify "cacheFile" option');
        }

        if (!
$options['cacheDisabled'] && file_exists($options['cacheFile'])) {
            
$dispatchData = require $options['cacheFile'];
            if (!
is_array($dispatchData)) {
                throw new 
RuntimeException('Invalid cache file "' $options['cacheFile'] . '"');
            }
            return new 
$options['dispatcher']($dispatchData);
        }

        
$routeCollector = new $options['routeCollector'](
            new 
$options['routeParser'], new $options['dataGenerator']
        );
        
$routeDefinitionCallback($routeCollector);

        
/** @var RouteCollector $routeCollector */
        
$dispatchData $routeCollector->getData();
        if (!
$options['cacheDisabled']) {
            
file_put_contents(
                
$options['cacheFile'],
                
'<?php return ' var_export($dispatchDatatrue) . ';'
            
);
        }

        return new 
$options['dispatcher']($dispatchData);
    }
}
Онлайн: 0
Реклама