20862be7d0
- slim/slim: ^3.1 - symfony/expression-language: ^3.4 - fxp/composer-asset-plugin: ~1.3 - bower-asset/vue: ^2.5 - bower-asset/vue-resource: ^1.5
31 lines
796 B
PHP
31 lines
796 B
PHP
<?php
|
|
|
|
namespace FastRoute\DataGenerator;
|
|
|
|
class GroupCountBased extends RegexBasedAbstract
|
|
{
|
|
protected function getApproxChunkSize()
|
|
{
|
|
return 10;
|
|
}
|
|
|
|
protected function processChunk($regexToRoutesMap)
|
|
{
|
|
$routeMap = [];
|
|
$regexes = [];
|
|
$numGroups = 0;
|
|
foreach ($regexToRoutesMap as $regex => $route) {
|
|
$numVariables = count($route->variables);
|
|
$numGroups = max($numGroups, $numVariables);
|
|
|
|
$regexes[] = $regex . str_repeat('()', $numGroups - $numVariables);
|
|
$routeMap[$numGroups + 1] = [$route->handler, $route->variables];
|
|
|
|
++$numGroups;
|
|
}
|
|
|
|
$regex = '~^(?|' . implode('|', $regexes) . ')$~';
|
|
return ['regex' => $regex, 'routeMap' => $routeMap];
|
|
}
|
|
}
|