浏览代码

[Routing] added . as a valid character in route names

Fabien Potencier 14 年之前
父节点
当前提交
7cb8dca04d

+ 4 - 0
src/Symfony/Component/Routing/Generator/Dumper/PhpGeneratorDumper.php

@@ -58,6 +58,8 @@ class PhpGeneratorDumper extends GeneratorDumper
             $requirements = str_replace("\n", '', var_export($compiledRoute->getRequirements(), true));
             $tokens = str_replace("\n", '', var_export($compiledRoute->getTokens(), true));
 
+            $name = str_replace('.', '__', $name);
+
             $methods[] = <<<EOF
     protected function get{$name}RouteInfo()
     {
@@ -78,6 +80,8 @@ EOF
             throw new \InvalidArgumentException(sprintf('Route "%s" does not exist.', \$name));
         }
 
+        \$name = str_replace('.', '__', \$name);
+
         list(\$variables, \$defaults, \$requirements, \$tokens) = \$this->{'get'.\$name.'RouteInfo'}();
 
         return \$this->doGenerate(\$variables, \$defaults, \$requirements, \$tokens, \$parameters, \$name, \$absolute);

+ 1 - 1
src/Symfony/Component/Routing/RouteCollection.php

@@ -42,7 +42,7 @@ class RouteCollection
      */
     public function add($name, Route $route)
     {
-        if (!preg_match('/^[a-z0-9A-Z_]+$/', $name)) {
+        if (!preg_match('/^[a-z0-9A-Z_.]+$/', $name)) {
             throw new \InvalidArgumentException(sprintf('Name "%s" contains non valid characters for a route name.', $name));
         }