[Performance] Routing Generator, avoid array_merge in generated classes

This commit is contained in:
Xavier De Cock 2011-03-11 10:15:18 +01:00
parent ab46d0c62b
commit d91ea24b3e

View File

@ -54,7 +54,10 @@ class PhpGeneratorDumper extends GeneratorDumper
$compiledRoute = $route->compile(); $compiledRoute = $route->compile();
$variables = str_replace("\n", '', var_export($compiledRoute->getVariables(), true)); $variables = str_replace("\n", '', var_export($compiledRoute->getVariables(), true));
$defaults = str_replace("\n", '', var_export($route->getDefaults(), true)); $defaultsMerge='';
foreach ($compiledRoute->getDefaults() as $key => $value) {
$defaultsMerge.=' $defaults[\''.$key.'\']='.str_replace("\n", '', var_export($value, true)).';'."\n";
}
$requirements = str_replace("\n", '', var_export($compiledRoute->getRequirements(), true)); $requirements = str_replace("\n", '', var_export($compiledRoute->getRequirements(), true));
$tokens = str_replace("\n", '', var_export($compiledRoute->getTokens(), true)); $tokens = str_replace("\n", '', var_export($compiledRoute->getTokens(), true));
@ -63,7 +66,9 @@ class PhpGeneratorDumper extends GeneratorDumper
$methods[] = <<<EOF $methods[] = <<<EOF
protected function get{$escapedName}RouteInfo() protected function get{$escapedName}RouteInfo()
{ {
return array($variables, array_merge(\$this->defaults, $defaults), $requirements, $tokens); \$defaults=\$this->defaults;
$defaultsMerge
return array($variables, \$defaults, $requirements, $tokens);
} }
EOF EOF