5if (!function_exists(
'FastRoute\simpleDispatcher')) {
12 function simpleDispatcher(callable $routeDefinitionCallback, array
$options = [])
15 'routeParser' =>
'FastRoute\\RouteParser\\Std',
16 'dataGenerator' =>
'FastRoute\\DataGenerator\\GroupCountBased',
17 'dispatcher' =>
'FastRoute\\Dispatcher\\GroupCountBased',
18 'routeCollector' =>
'FastRoute\\RouteCollector',
22 $routeCollector =
new $options[
'routeCollector'](
25 $routeDefinitionCallback($routeCollector);
27 return new $options[
'dispatcher']($routeCollector->getData());
36 function cachedDispatcher(callable $routeDefinitionCallback, array
$options = [])
39 'routeParser' =>
'FastRoute\\RouteParser\\Std',
40 'dataGenerator' =>
'FastRoute\\DataGenerator\\GroupCountBased',
41 'dispatcher' =>
'FastRoute\\Dispatcher\\GroupCountBased',
42 'routeCollector' =>
'FastRoute\\RouteCollector',
43 'cacheDisabled' =>
false,
47 throw new \LogicException(
'Must specify "cacheFile" option');
51 $dispatchData = require
$options[
'cacheFile'];
52 if (!is_array($dispatchData)) {
53 throw new \RuntimeException(
'Invalid cache file "' .
$options[
'cacheFile'] .
'"');
55 return new $options[
'dispatcher']($dispatchData);
58 $routeCollector =
new $options[
'routeCollector'](
61 $routeDefinitionCallback($routeCollector);
64 $dispatchData = $routeCollector->getData();
68 '<?php return ' . var_export($dispatchData,
true) .
';'
72 return new $options[
'dispatcher']($dispatchData);
An exception for terminatinating execution or to throw for unit testing.