From d91ea24b3e9e930833b11387f3b290cc8033e983 Mon Sep 17 00:00:00 2001 From: Xavier De Cock Date: Fri, 11 Mar 2011 10:15:18 +0100 Subject: [PATCH] [Performance] Routing Generator, avoid array_merge in generated classes --- .../Routing/Generator/Dumper/PhpGeneratorDumper.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php b/src/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php index df9e7b4e3f..0c1d055127 100644 --- a/src/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php +++ b/src/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php @@ -54,7 +54,10 @@ class PhpGeneratorDumper extends GeneratorDumper $compiledRoute = $route->compile(); $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)); $tokens = str_replace("\n", '', var_export($compiledRoute->getTokens(), true)); @@ -63,7 +66,9 @@ class PhpGeneratorDumper extends GeneratorDumper $methods[] = <<defaults, $defaults), $requirements, $tokens); + \$defaults=\$this->defaults; +$defaultsMerge + return array($variables, \$defaults, $requirements, $tokens); } EOF