Skip to content

Commit

Permalink
[Routing] renamed hostname pattern to just hostname
Browse files Browse the repository at this point in the history
  • Loading branch information
fabpot committed Jan 14, 2013
1 parent 45fefce commit b815198
Show file tree
Hide file tree
Showing 20 changed files with 82 additions and 83 deletions.
10 changes: 5 additions & 5 deletions Annotation/Route.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class Route
private $requirements;
private $options;
private $defaults;
private $hostnamePattern;
private $hostname;

/**
* Constructor.
Expand Down Expand Up @@ -62,14 +62,14 @@ public function getPattern()
return $this->pattern;
}

public function setHostnamePattern($pattern)
public function setHostname($pattern)
{
$this->hostnamePattern = $pattern;
$this->hostname = $pattern;
}

public function getHostnamePattern()
public function getHostname()
{
return $this->hostnamePattern;
return $this->hostname;
}

public function setName($name)
Expand Down
22 changes: 11 additions & 11 deletions Loader/AnnotationClassLoader.php
Original file line number Diff line number Diff line change
Expand Up @@ -108,11 +108,11 @@ public function load($class, $type = null)
}

$globals = array(
'pattern' => '',
'requirements' => array(),
'options' => array(),
'defaults' => array(),
'hostname_pattern' => '',
'pattern' => '',
'requirements' => array(),
'options' => array(),
'defaults' => array(),
'hostname' => '',
);

$class = new \ReflectionClass($class);
Expand All @@ -137,8 +137,8 @@ public function load($class, $type = null)
$globals['defaults'] = $annot->getDefaults();
}

if (null !== $annot->getHostnamePattern()) {
$globals['hostname_pattern'] = $annot->getHostnamePattern();
if (null !== $annot->getHostname()) {
$globals['hostname'] = $annot->getHostname();
}
}

Expand Down Expand Up @@ -173,12 +173,12 @@ protected function addRoute(RouteCollection $collection, $annot, $globals, \Refl
$requirements = array_replace($globals['requirements'], $annot->getRequirements());
$options = array_replace($globals['options'], $annot->getOptions());

$hostnamePattern = $annot->getHostnamePattern();
if (null === $hostnamePattern) {
$hostnamePattern = $globals['hostname_pattern'];
$hostname = $annot->getHostname();
if (null === $hostname) {
$hostname = $globals['hostname'];
}

$route = new Route($globals['pattern'].$annot->getPattern(), $defaults, $requirements, $options, $hostnamePattern);
$route = new Route($globals['pattern'].$annot->getPattern(), $defaults, $requirements, $options, $hostname);

$this->configureRoute($route, $class, $method, $annot);

Expand Down
8 changes: 4 additions & 4 deletions Loader/XmlFileLoader.php
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ protected function parseRoute(RouteCollection $collection, \DOMElement $node, $p

list($defaults, $requirements, $options) = $this->parseConfigs($node, $path);

$route = new Route($node->getAttribute('pattern'), $defaults, $requirements, $options, $node->getAttribute('hostname-pattern'), $schemes, $methods);
$route = new Route($node->getAttribute('pattern'), $defaults, $requirements, $options, $node->getAttribute('hostname'), $schemes, $methods);
$collection->add($id, $route);
}

Expand All @@ -143,7 +143,7 @@ protected function parseImport(RouteCollection $collection, \DOMElement $node, $

$type = $node->getAttribute('type');
$prefix = $node->getAttribute('prefix');
$hostnamePattern = $node->hasAttribute('hostname-pattern') ? $node->getAttribute('hostname-pattern') : null;
$hostname = $node->hasAttribute('hostname') ? $node->getAttribute('hostname') : null;
$schemes = $node->hasAttribute('schemes') ? array_filter(explode(' ', $node->getAttribute('schemes'))) : null;
$methods = $node->hasAttribute('methods') ? array_filter(explode(' ', $node->getAttribute('methods'))) : null;

Expand All @@ -154,8 +154,8 @@ protected function parseImport(RouteCollection $collection, \DOMElement $node, $
$subCollection = $this->import($resource, ('' !== $type ? $type : null), false, $file);
/* @var $subCollection RouteCollection */
$subCollection->addPrefix($prefix);
if (null !== $hostnamePattern) {
$subCollection->setHostnamePattern($hostnamePattern);
if (null !== $hostname) {
$subCollection->setHostname($hostname);
}
if (null !== $schemes) {
$subCollection->setSchemes($schemes);
Expand Down
12 changes: 6 additions & 6 deletions Loader/YamlFileLoader.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
class YamlFileLoader extends FileLoader
{
private static $availableKeys = array(
'resource', 'type', 'prefix', 'pattern', 'hostname_pattern', 'schemes', 'methods', 'defaults', 'requirements', 'options',
'resource', 'type', 'prefix', 'pattern', 'hostname', 'schemes', 'methods', 'defaults', 'requirements', 'options',
);

/**
Expand Down Expand Up @@ -98,11 +98,11 @@ protected function parseRoute(RouteCollection $collection, $name, array $config,
$defaults = isset($config['defaults']) ? $config['defaults'] : array();
$requirements = isset($config['requirements']) ? $config['requirements'] : array();
$options = isset($config['options']) ? $config['options'] : array();
$hostnamePattern = isset($config['hostname_pattern']) ? $config['hostname_pattern'] : '';
$hostname = isset($config['hostname']) ? $config['hostname'] : '';
$schemes = isset($config['schemes']) ? $config['schemes'] : array();
$methods = isset($config['methods']) ? $config['methods'] : array();

$route = new Route($config['pattern'], $defaults, $requirements, $options, $hostnamePattern, $schemes, $methods);
$route = new Route($config['pattern'], $defaults, $requirements, $options, $hostname, $schemes, $methods);

$collection->add($name, $route);
}
Expand All @@ -122,7 +122,7 @@ protected function parseImport(RouteCollection $collection, array $config, $path
$defaults = isset($config['defaults']) ? $config['defaults'] : array();
$requirements = isset($config['requirements']) ? $config['requirements'] : array();
$options = isset($config['options']) ? $config['options'] : array();
$hostnamePattern = isset($config['hostname_pattern']) ? $config['hostname_pattern'] : null;
$hostname = isset($config['hostname']) ? $config['hostname'] : null;
$schemes = isset($config['schemes']) ? $config['schemes'] : null;
$methods = isset($config['methods']) ? $config['methods'] : null;

Expand All @@ -131,8 +131,8 @@ protected function parseImport(RouteCollection $collection, array $config, $path
$subCollection = $this->import($config['resource'], $type, false, $file);
/* @var $subCollection RouteCollection */
$subCollection->addPrefix($prefix);
if (null !== $hostnamePattern) {
$subCollection->setHostnamePattern($hostnamePattern);
if (null !== $hostname) {
$subCollection->setHostname($hostname);
}
if (null !== $schemes) {
$subCollection->setSchemes($schemes);
Expand Down
4 changes: 2 additions & 2 deletions Loader/schema/routing/routing-1.0.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@

<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="pattern" type="xsd:string" use="required" />
<xsd:attribute name="hostname-pattern" type="xsd:string" />
<xsd:attribute name="hostname" type="xsd:string" />
<xsd:attribute name="schemes" type="stringlist" />
<xsd:attribute name="methods" type="stringlist" />
</xsd:complexType>
Expand All @@ -58,7 +58,7 @@
<xsd:attribute name="resource" type="xsd:string" use="required" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="prefix" type="xsd:string" />
<xsd:attribute name="hostname-pattern" type="xsd:string" />
<xsd:attribute name="hostname" type="xsd:string" />
<xsd:attribute name="schemes" type="stringlist" />
<xsd:attribute name="methods" type="stringlist" />
</xsd:complexType>
Expand Down
43 changes: 21 additions & 22 deletions Route.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class Route implements \Serializable
/**
* @var string
*/
private $hostnamePattern = '';
private $hostname = '';

/**
* @var array
Expand Down Expand Up @@ -70,24 +70,23 @@ class Route implements \Serializable
*
* * compiler_class: A class name able to compile this route instance (RouteCompiler by default)
*
* @param string $pattern The path pattern to match
* @param array $defaults An array of default parameter values
* @param array $requirements An array of requirements for parameters (regexes)
* @param array $options An array of options
* @param string $hostnamePattern The hostname pattern to match
* @param string|array $schemes A required URI scheme or an array of restricted schemes
* @param string|array $methods A required HTTP method or an array of restricted methods
* @param string $pattern The path pattern to match
* @param array $defaults An array of default parameter values
* @param array $requirements An array of requirements for parameters (regexes)
* @param array $options An array of options
* @param string $hostname The hostname pattern to match
* @param string|array $schemes A required URI scheme or an array of restricted schemes
* @param string|array $methods A required HTTP method or an array of restricted methods
*
* @api
*/
public function __construct($pattern, array $defaults = array(), array $requirements = array(), array $options = array(),
$hostnamePattern = '', $schemes = array(), $methods = array())
public function __construct($pattern, array $defaults = array(), array $requirements = array(), array $options = array(), $hostname = '', $schemes = array(), $methods = array())
{
$this->setPattern($pattern);
$this->setDefaults($defaults);
$this->setRequirements($requirements);
$this->setOptions($options);
$this->setHostnamePattern($hostnamePattern);
$this->setHostname($hostname);
// 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) {
Expand All @@ -101,21 +100,21 @@ public function __construct($pattern, array $defaults = array(), array $requirem
public function serialize()
{
return serialize(array(
'pattern' => $this->pattern,
'hostnamePattern' => $this->hostnamePattern,
'defaults' => $this->defaults,
'pattern' => $this->pattern,
'hostname' => $this->hostname,
'defaults' => $this->defaults,
'requirements' => $this->requirements,
'options' => $this->options,
'schemes' => $this->schemes,
'methods' => $this->methods,
'options' => $this->options,
'schemes' => $this->schemes,
'methods' => $this->methods,
));
}

public function unserialize($data)
{
$data = unserialize($data);
$this->pattern = $data['pattern'];
$this->hostnamePattern = $data['hostnamePattern'];
$this->hostname = $data['hostname'];
$this->defaults = $data['defaults'];
$this->requirements = $data['requirements'];
$this->options = $data['options'];
Expand Down Expand Up @@ -157,19 +156,19 @@ public function setPattern($pattern)
*
* @return string The pattern
*/
public function getHostnamePattern()
public function getHostname()
{
return $this->hostnamePattern;
return $this->hostname;
}

/**
* Sets the hostname pattern.
*
* @param string $pattern The pattern
*/
public function setHostnamePattern($pattern)
public function setHostname($pattern)
{
$this->hostnamePattern = (string) $pattern;
$this->hostname = (string) $pattern;
$this->compiled = null;

return $this;
Expand Down
4 changes: 2 additions & 2 deletions RouteCollection.php
Original file line number Diff line number Diff line change
Expand Up @@ -261,10 +261,10 @@ public function getPrefix()
* @param array $defaults An array of default values
* @param array $requirements An array of requirements
*/
public function setHostnamePattern($pattern, array $defaults = array(), array $requirements = array())
public function setHostname($pattern, array $defaults = array(), array $requirements = array())
{
foreach ($this->routes as $route) {
$route->setHostnamePattern($pattern);
$route->setHostname($pattern);
$route->addDefaults($defaults);
$route->addRequirements($requirements);
}
Expand Down
4 changes: 2 additions & 2 deletions RouteCompiler.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ public function compile(Route $route)
$hostnameRegex = null;
$hostnameTokens = array();

if ('' !== $hostnamePattern = $route->getHostnamePattern()) {
$result = $this->compilePattern($route, $hostnamePattern, true);
if ('' !== $hostname = $route->getHostname()) {
$result = $this->compilePattern($route, $hostname, true);

$hostnameVariables = $result['variables'];
$variables = array_merge($variables, $hostnameVariables);
Expand Down
2 changes: 1 addition & 1 deletion Tests/Annotation/RouteTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public function getValidParameters()
array('options', array('compiler_class' => 'RouteCompiler'), 'getOptions'),
array('name', 'blog_index', 'getName'),
array('defaults', array('_controller' => 'MyBlogBundle:Blog:index'), 'getDefaults'),
array('hostname_pattern', array('{locale}.example.com'), 'getHostnamePattern')
array('hostname', array('{locale}.example.com'), 'getHostname')
);
}
}
2 changes: 1 addition & 1 deletion Tests/Fixtures/namespaceprefix.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">

<r:route id="blog_show" pattern="/blog/{slug}" hostname-pattern="{_locale}.example.com">
<r:route id="blog_show" pattern="/blog/{slug}" hostname="{_locale}.example.com">
<r:default key="_controller">MyBundle:Blog:show</r:default>
<requirement xmlns="http://symfony.com/schema/routing" key="slug">\w+</requirement>
<r2:requirement xmlns:r2="http://symfony.com/schema/routing" key="_locale">en|fr|de</r2:requirement>
Expand Down
2 changes: 1 addition & 1 deletion Tests/Fixtures/validpattern.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">

<route id="blog_show" pattern="/blog/{slug}" hostname-pattern="{locale}.example.com">
<route id="blog_show" pattern="/blog/{slug}" hostname="{locale}.example.com">
<default key="_controller">MyBundle:Blog:show</default>
<requirement key="_method">GET</requirement>
<requirement key="locale">\w+</requirement>
Expand Down
8 changes: 4 additions & 4 deletions Tests/Fixtures/validpattern.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
blog_show:
pattern: /blog/{slug}
defaults: { _controller: MyBlogBundle:Blog:show }
hostname_pattern: "{locale}.example.com"
requirements: { '_method': 'GET', 'locale': '\w+' }
pattern: /blog/{slug}
defaults: { _controller: MyBlogBundle:Blog:show }
hostname : "{locale}.example.com"
requirements: { '_method': 'GET', 'locale': '\w+' }
options:
compiler_class: RouteCompiler
2 changes: 1 addition & 1 deletion Tests/Fixtures/validresource.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">

<import resource="validpattern.xml" prefix="/{foo}" hostname-pattern="{locale}.example.com">
<import resource="validpattern.xml" prefix="/{foo}" hostname="{locale}.example.com">
<default key="foo">123</default>
<requirement key="foo">\d+</requirement>
<option key="foo">bar</option>
Expand Down
12 changes: 6 additions & 6 deletions Tests/Fixtures/validresource.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
blog_show:
resource: validpattern.yml
prefix: /{foo}
defaults: { 'foo': '123' }
requirements: { 'foo': '\d+' }
options: { 'foo': 'bar' }
hostname_pattern: "{locale}.example.com"
resource: validpattern.yml
prefix: /{foo}
defaults: { 'foo': '123' }
requirements: { 'foo': '\d+' }
options: { 'foo': 'bar' }
hostname: "{locale}.example.com"
2 changes: 1 addition & 1 deletion Tests/Loader/PhpFileLoaderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public function testLoadWithRoute()
$this->assertEquals('/blog/{slug}', $route->getPattern());
$this->assertEquals('MyBlogBundle:Blog:show', $route->getDefault('_controller'));
$this->assertEquals('GET', $route->getRequirement('_method'));
$this->assertEquals('{locale}.example.com', $route->getHostnamePattern());
$this->assertEquals('{locale}.example.com', $route->getHostname());
$this->assertEquals('RouteCompiler', $route->getOption('compiler_class'));
}
}
6 changes: 3 additions & 3 deletions Tests/Loader/XmlFileLoaderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public function testLoadWithRoute()
$this->assertEquals('MyBundle:Blog:show', $route->getDefault('_controller'));
$this->assertEquals('GET', $route->getRequirement('_method'));
$this->assertEquals('\w+', $route->getRequirement('locale'));
$this->assertEquals('{locale}.example.com', $route->getHostnamePattern());
$this->assertEquals('{locale}.example.com', $route->getHostname());
$this->assertEquals('RouteCompiler', $route->getOption('compiler_class'));
}

Expand All @@ -63,7 +63,7 @@ public function testLoadWithNamespacePrefix()
$this->assertEquals('MyBundle:Blog:show', $route->getDefault('_controller'));
$this->assertEquals('\w+', $route->getRequirement('slug'));
$this->assertEquals('en|fr|de', $route->getRequirement('_locale'));
$this->assertEquals('{_locale}.example.com', $route->getHostnamePattern());
$this->assertEquals('{_locale}.example.com', $route->getHostname());
$this->assertEquals('RouteCompiler', $route->getOption('compiler_class'));
}

Expand All @@ -80,7 +80,7 @@ public function testLoadWithImport()
$this->assertEquals('123', $routes['blog_show']->getDefault('foo'));
$this->assertEquals('\d+', $routes['blog_show']->getRequirement('foo'));
$this->assertEquals('bar', $routes['blog_show']->getOption('foo'));
$this->assertEquals('{locale}.example.com', $routes['blog_show']->getHostnamePattern());
$this->assertEquals('{locale}.example.com', $routes['blog_show']->getHostname());
}

/**
Expand Down
4 changes: 2 additions & 2 deletions Tests/Loader/YamlFileLoaderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ public function testLoadWithPattern()
$this->assertEquals('MyBlogBundle:Blog:show', $route->getDefault('_controller'));
$this->assertEquals('GET', $route->getRequirement('_method'));
$this->assertEquals('\w+', $route->getRequirement('locale'));
$this->assertEquals('{locale}.example.com', $route->getHostnamePattern());
$this->assertEquals('{locale}.example.com', $route->getHostname());
$this->assertEquals('RouteCompiler', $route->getOption('compiler_class'));
}

Expand All @@ -103,6 +103,6 @@ public function testLoadWithResource()
$this->assertEquals('123', $routes['blog_show']->getDefault('foo'));
$this->assertEquals('\d+', $routes['blog_show']->getRequirement('foo'));
$this->assertEquals('bar', $routes['blog_show']->getOption('foo'));
$this->assertEquals('{locale}.example.com', $routes['blog_show']->getHostnamePattern());
$this->assertEquals('{locale}.example.com', $routes['blog_show']->getHostname());
}
}
Loading

0 comments on commit b815198

Please sign in to comment.