From 86278cd6c09ecb6f61b3e260c98d342734041a4c Mon Sep 17 00:00:00 2001 From: Tobias Schultze Date: Tue, 13 Jan 2015 14:24:52 +0100 Subject: [PATCH] [Routing] remove deprecated features from routing --- .../Component/Routing/Annotation/Route.php | 20 ----- .../Routing/Generator/UrlGenerator.php | 4 - .../Routing/Loader/AnnotationClassLoader.php | 3 - .../Routing/Loader/XmlFileLoader.php | 11 --- .../Routing/Loader/YamlFileLoader.php | 13 +--- .../Loader/schema/routing/routing-1.0.xsd | 1 - src/Symfony/Component/Routing/Route.php | 75 +------------------ .../Routing/Tests/Annotation/RouteTest.php | 8 -- .../Tests/Fixtures/legacy_validpattern.xml | 16 ---- .../Tests/Fixtures/legacy_validpattern.yml | 8 -- .../Tests/Loader/XmlFileLoaderTest.php | 19 ----- .../Tests/Loader/YamlFileLoaderTest.php | 19 ----- .../Component/Routing/Tests/RouteTest.php | 42 ----------- 13 files changed, 3 insertions(+), 236 deletions(-) delete mode 100644 src/Symfony/Component/Routing/Tests/Fixtures/legacy_validpattern.xml delete mode 100644 src/Symfony/Component/Routing/Tests/Fixtures/legacy_validpattern.yml diff --git a/src/Symfony/Component/Routing/Annotation/Route.php b/src/Symfony/Component/Routing/Annotation/Route.php index af2158250c..a0e3294c32 100644 --- a/src/Symfony/Component/Routing/Annotation/Route.php +++ b/src/Symfony/Component/Routing/Annotation/Route.php @@ -54,26 +54,6 @@ class Route } } - /** - * @deprecated since version 2.2, to be removed in 3.0. Use setPath instead. - */ - public function setPattern($pattern) - { - trigger_error('The '.__METHOD__.' method is deprecated since version 2.2 and will be removed in 3.0. Use the setPath() method instead and use the "path" option instead of the "pattern" option in the route definition.', E_USER_DEPRECATED); - - $this->path = $pattern; - } - - /** - * @deprecated since version 2.2, to be removed in 3.0. Use getPath instead. - */ - public function getPattern() - { - trigger_error('The '.__METHOD__.' method is deprecated since version 2.2 and will be removed in 3.0. Use the getPath() method instead and use the "path" option instead of the "pattern" option in the route definition.', E_USER_DEPRECATED); - - return $this->path; - } - public function setPath($path) { $this->path = $path; diff --git a/src/Symfony/Component/Routing/Generator/UrlGenerator.php b/src/Symfony/Component/Routing/Generator/UrlGenerator.php index 0deb666fb4..86a5a948ad 100644 --- a/src/Symfony/Component/Routing/Generator/UrlGenerator.php +++ b/src/Symfony/Component/Routing/Generator/UrlGenerator.php @@ -219,10 +219,6 @@ class UrlGenerator implements UrlGeneratorInterface, ConfigurableRequirementsInt $referenceType = self::ABSOLUTE_URL; $scheme = current($requiredSchemes); } - } elseif (isset($requirements['_scheme']) && ($req = strtolower($requirements['_scheme'])) && $scheme !== $req) { - // We do this for BC; to be removed if _scheme is not supported anymore - $referenceType = self::ABSOLUTE_URL; - $scheme = $req; } if ($hostTokens) { diff --git a/src/Symfony/Component/Routing/Loader/AnnotationClassLoader.php b/src/Symfony/Component/Routing/Loader/AnnotationClassLoader.php index 92abf3648a..fb14757152 100644 --- a/src/Symfony/Component/Routing/Loader/AnnotationClassLoader.php +++ b/src/Symfony/Component/Routing/Loader/AnnotationClassLoader.php @@ -220,11 +220,8 @@ abstract class AnnotationClassLoader implements LoaderInterface ); if ($annot = $this->reader->getClassAnnotation($class, $this->routeAnnotationClass)) { - // for BC reasons if (null !== $annot->getPath()) { $globals['path'] = $annot->getPath(); - } elseif (null !== $annot->getPattern()) { - $globals['path'] = $annot->getPattern(); } if (null !== $annot->getRequirements()) { diff --git a/src/Symfony/Component/Routing/Loader/XmlFileLoader.php b/src/Symfony/Component/Routing/Loader/XmlFileLoader.php index 7d2e12fe34..9519299841 100644 --- a/src/Symfony/Component/Routing/Loader/XmlFileLoader.php +++ b/src/Symfony/Component/Routing/Loader/XmlFileLoader.php @@ -117,17 +117,6 @@ class XmlFileLoader extends FileLoader throw new \InvalidArgumentException(sprintf('The element in file "%s" must have an "id" and a "path" attribute.', $path)); } - if ($node->hasAttribute('pattern')) { - if ($node->hasAttribute('path')) { - throw new \InvalidArgumentException(sprintf('The element in file "%s" cannot define both a "path" and a "pattern" attribute. Use only "path".', $path)); - } - - trigger_error('The "pattern" is deprecated since version 2.2 and will be removed in 3.0. Use the "path" option in the route definition instead.', E_USER_DEPRECATED); - - $node->setAttribute('path', $node->getAttribute('pattern')); - $node->removeAttribute('pattern'); - } - $schemes = preg_split('/[\s,\|]++/', $node->getAttribute('schemes'), -1, PREG_SPLIT_NO_EMPTY); $methods = preg_split('/[\s,\|]++/', $node->getAttribute('methods'), -1, PREG_SPLIT_NO_EMPTY); diff --git a/src/Symfony/Component/Routing/Loader/YamlFileLoader.php b/src/Symfony/Component/Routing/Loader/YamlFileLoader.php index 63d3cd6439..963aa701b8 100644 --- a/src/Symfony/Component/Routing/Loader/YamlFileLoader.php +++ b/src/Symfony/Component/Routing/Loader/YamlFileLoader.php @@ -28,7 +28,7 @@ use Symfony\Component\Config\Loader\FileLoader; class YamlFileLoader extends FileLoader { private static $availableKeys = array( - 'resource', 'type', 'prefix', 'pattern', 'path', 'host', 'schemes', 'methods', 'defaults', 'requirements', 'options', 'condition', + 'resource', 'type', 'prefix', 'path', 'host', 'schemes', 'methods', 'defaults', 'requirements', 'options', 'condition', ); private $yamlParser; @@ -76,17 +76,6 @@ class YamlFileLoader extends FileLoader } foreach ($config as $name => $config) { - if (isset($config['pattern'])) { - if (isset($config['path'])) { - throw new \InvalidArgumentException(sprintf('The file "%s" cannot define both a "path" and a "pattern" attribute. Use only "path".', $path)); - } - - trigger_error('The "pattern" is deprecated since version 2.2 and will be removed in 3.0. Use the "path" option in the route definition instead.', E_USER_DEPRECATED); - - $config['path'] = $config['pattern']; - unset($config['pattern']); - } - $this->validate($config, $name, $path); if (isset($config['resource'])) { diff --git a/src/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd b/src/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd index d40aa42212..19b400540e 100644 --- a/src/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd +++ b/src/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd @@ -38,7 +38,6 @@ - diff --git a/src/Symfony/Component/Routing/Route.php b/src/Symfony/Component/Routing/Route.php index a7b6ad1fd4..b9d1b30c95 100644 --- a/src/Symfony/Component/Routing/Route.php +++ b/src/Symfony/Component/Routing/Route.php @@ -91,14 +91,8 @@ class Route implements \Serializable $this->setRequirements($requirements); $this->setOptions($options); $this->setHost($host); - // The conditions make sure that an initial empty $schemes/$methods does not override the corresponding requirement. - // They can be removed when the BC layer is removed. - if ($schemes) { - $this->setSchemes($schemes); - } - if ($methods) { - $this->setMethods($methods); - } + $this->setSchemes($schemes); + $this->setMethods($methods); $this->setCondition($condition); } @@ -142,38 +136,6 @@ class Route implements \Serializable } } - /** - * Returns the pattern for the path. - * - * @return string The pattern - * - * @deprecated since version 2.2, to be removed in 3.0. Use getPath instead. - */ - public function getPattern() - { - trigger_error('The '.__METHOD__.' method is deprecated since version 2.2 and will be removed in 3.0. Use the getPath() method instead.', E_USER_DEPRECATED); - - return $this->path; - } - - /** - * Sets the pattern for the path. - * - * This method implements a fluent interface. - * - * @param string $pattern The path pattern - * - * @return Route The current Route instance - * - * @deprecated since version 2.2, to be removed in 3.0. Use setPath instead. - */ - public function setPattern($pattern) - { - trigger_error('The '.__METHOD__.' method is deprecated since version 2.2 and will be removed in 3.0. Use the setPath() method instead.', E_USER_DEPRECATED); - - return $this->setPath($pattern); - } - /** * Returns the pattern for the path. * @@ -254,14 +216,6 @@ class Route implements \Serializable public function setSchemes($schemes) { $this->schemes = array_map('strtolower', (array) $schemes); - - // this is to keep BC and will be removed in a future version - if ($this->schemes) { - $this->requirements['_scheme'] = implode('|', $this->schemes); - } else { - unset($this->requirements['_scheme']); - } - $this->compiled = null; return $this; @@ -303,14 +257,6 @@ class Route implements \Serializable public function setMethods($methods) { $this->methods = array_map('strtoupper', (array) $methods); - - // this is to keep BC and will be removed in a future version - if ($this->methods) { - $this->requirements['_method'] = implode('|', $this->methods); - } else { - unset($this->requirements['_method']); - } - $this->compiled = null; return $this; @@ -548,12 +494,6 @@ class Route implements \Serializable */ public function getRequirement($key) { - if ('_scheme' === $key) { - trigger_error('The "_scheme" requirement is deprecated since version 2.2 and will be removed in 3.0. Use getSchemes() instead.', E_USER_DEPRECATED); - } elseif ('_method' === $key) { - trigger_error('The "_method" requirement is deprecated since version 2.2 and will be removed in 3.0. Use getMethods() instead.', E_USER_DEPRECATED); - } - return isset($this->requirements[$key]) ? $this->requirements[$key] : null; } @@ -653,17 +593,6 @@ class Route implements \Serializable throw new \InvalidArgumentException(sprintf('Routing requirement for "%s" cannot be empty.', $key)); } - // this is to keep BC and will be removed in a future version - if ('_scheme' === $key) { - trigger_error('The "_scheme" requirement is deprecated since version 2.2 and will be removed in 3.0. Use the setSchemes() method instead or the "schemes" option in the route definition.', E_USER_DEPRECATED); - - $this->setSchemes(explode('|', $regex)); - } elseif ('_method' === $key) { - trigger_error('The "_method" requirement is deprecated since version 2.2 and will be removed in 3.0. Use the setMethods() method instead or the "methods" option in the route definition.', E_USER_DEPRECATED); - - $this->setMethods(explode('|', $regex)); - } - return $regex; } } diff --git a/src/Symfony/Component/Routing/Tests/Annotation/RouteTest.php b/src/Symfony/Component/Routing/Tests/Annotation/RouteTest.php index 921edf63d0..7a3665eebe 100644 --- a/src/Symfony/Component/Routing/Tests/Annotation/RouteTest.php +++ b/src/Symfony/Component/Routing/Tests/Annotation/RouteTest.php @@ -46,12 +46,4 @@ class RouteTest extends \PHPUnit_Framework_TestCase array('condition', 'context.getMethod() == "GET"', 'getCondition'), ); } - - public function testLegacyGetPattern() - { - $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED); - - $route = new Route(array('value' => '/Blog')); - $this->assertEquals($route->getPattern(), '/Blog'); - } } diff --git a/src/Symfony/Component/Routing/Tests/Fixtures/legacy_validpattern.xml b/src/Symfony/Component/Routing/Tests/Fixtures/legacy_validpattern.xml deleted file mode 100644 index a01ebca23a..0000000000 --- a/src/Symfony/Component/Routing/Tests/Fixtures/legacy_validpattern.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - MyBundle:Blog:show - - GET|POST|put|OpTiOnS - hTTps - \w+ - - context.getMethod() == "GET" - - diff --git a/src/Symfony/Component/Routing/Tests/Fixtures/legacy_validpattern.yml b/src/Symfony/Component/Routing/Tests/Fixtures/legacy_validpattern.yml deleted file mode 100644 index ada65f0568..0000000000 --- a/src/Symfony/Component/Routing/Tests/Fixtures/legacy_validpattern.yml +++ /dev/null @@ -1,8 +0,0 @@ -blog_show_legacy: - pattern: /blog/{slug} - defaults: { _controller: "MyBundle:Blog:show" } - host: "{locale}.example.com" - requirements: { '_method': 'GET|POST|put|OpTiOnS', _scheme: https, 'locale': '\w+' } - condition: 'context.getMethod() == "GET"' - options: - compiler_class: RouteCompiler diff --git a/src/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php b/src/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php index 1b552d6d66..048d3ae904 100644 --- a/src/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php +++ b/src/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php @@ -45,25 +45,6 @@ class XmlFileLoaderTest extends \PHPUnit_Framework_TestCase $this->assertEquals('context.getMethod() == "GET"', $route->getCondition()); } - public function testLegacyRouteDefinitionLoading() - { - $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED); - - $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures'))); - $routeCollection = $loader->load('legacy_validpattern.xml'); - $route = $routeCollection->get('blog_show_legacy'); - - $this->assertInstanceOf('Symfony\Component\Routing\Route', $route); - $this->assertSame('/blog/{slug}', $route->getPath()); - $this->assertSame('{locale}.example.com', $route->getHost()); - $this->assertSame('MyBundle:Blog:show', $route->getDefault('_controller')); - $this->assertSame('\w+', $route->getRequirement('locale')); - $this->assertSame('RouteCompiler', $route->getOption('compiler_class')); - $this->assertEquals(array('GET', 'POST', 'PUT', 'OPTIONS'), $route->getMethods()); - $this->assertEquals(array('https'), $route->getSchemes()); - $this->assertEquals('context.getMethod() == "GET"', $route->getCondition()); - } - public function testLoadWithNamespacePrefix() { $loader = new XmlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures'))); diff --git a/src/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php b/src/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php index c3365e7ee5..ed99d87b09 100644 --- a/src/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php +++ b/src/Symfony/Component/Routing/Tests/Loader/YamlFileLoaderTest.php @@ -79,25 +79,6 @@ class YamlFileLoaderTest extends \PHPUnit_Framework_TestCase $this->assertEquals('context.getMethod() == "GET"', $route->getCondition()); } - public function testLegacyRouteDefinitionLoading() - { - $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED); - - $loader = new YamlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures'))); - $routeCollection = $loader->load('legacy_validpattern.yml'); - $route = $routeCollection->get('blog_show_legacy'); - - $this->assertInstanceOf('Symfony\Component\Routing\Route', $route); - $this->assertSame('/blog/{slug}', $route->getPath()); - $this->assertSame('{locale}.example.com', $route->getHost()); - $this->assertSame('MyBundle:Blog:show', $route->getDefault('_controller')); - $this->assertSame('\w+', $route->getRequirement('locale')); - $this->assertSame('RouteCompiler', $route->getOption('compiler_class')); - $this->assertEquals(array('GET', 'POST', 'PUT', 'OPTIONS'), $route->getMethods()); - $this->assertEquals(array('https'), $route->getSchemes()); - $this->assertEquals('context.getMethod() == "GET"', $route->getCondition()); - } - public function testLoadWithResource() { $loader = new YamlFileLoader(new FileLocator(array(__DIR__.'/../Fixtures'))); diff --git a/src/Symfony/Component/Routing/Tests/RouteTest.php b/src/Symfony/Component/Routing/Tests/RouteTest.php index b2a90e9951..adc15a61d5 100644 --- a/src/Symfony/Component/Routing/Tests/RouteTest.php +++ b/src/Symfony/Component/Routing/Tests/RouteTest.php @@ -164,23 +164,6 @@ class RouteTest extends \PHPUnit_Framework_TestCase $this->assertTrue($route->hasScheme('httpS')); } - public function testLegacySchemeRequirement() - { - $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED); - - $route = new Route('/'); - $route->setRequirement('_scheme', 'http|https'); - $this->assertEquals('http|https', $route->getRequirement('_scheme')); - $this->assertEquals(array('http', 'https'), $route->getSchemes()); - $this->assertTrue($route->hasScheme('https')); - $this->assertTrue($route->hasScheme('http')); - $this->assertFalse($route->hasScheme('ftp')); - $route->setSchemes(array('hTTp')); - $this->assertEquals('http', $route->getRequirement('_scheme')); - $route->setSchemes(array()); - $this->assertNull($route->getRequirement('_scheme')); - } - public function testMethod() { $route = new Route('/'); @@ -191,20 +174,6 @@ class RouteTest extends \PHPUnit_Framework_TestCase $this->assertEquals(array('GET', 'POST'), $route->getMethods(), '->setMethods() accepts an array of methods and uppercases them'); } - public function testLegacyMethodRequirement() - { - $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED); - - $route = new Route('/'); - $route->setRequirement('_method', 'GET|POST'); - $this->assertEquals('GET|POST', $route->getRequirement('_method')); - $this->assertEquals(array('GET', 'POST'), $route->getMethods()); - $route->setMethods(array('gEt')); - $this->assertEquals('GET', $route->getRequirement('_method')); - $route->setMethods(array()); - $this->assertNull($route->getRequirement('_method')); - } - public function testCondition() { $route = new Route('/'); @@ -222,17 +191,6 @@ class RouteTest extends \PHPUnit_Framework_TestCase $this->assertNotSame($compiled, $route->compile(), '->compile() recompiles if the route was modified'); } - public function testLegacyPattern() - { - $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED); - - $route = new Route('/{foo}'); - $this->assertEquals('/{foo}', $route->getPattern()); - - $route->setPattern('/bar'); - $this->assertEquals('/bar', $route->getPattern()); - } - public function testSerialize() { $route = new Route('/prefix/{foo}', array('foo' => 'default'), array('foo' => '\d+'));