merged branch Tobion/routing-phpdoc (PR #5994)

This PR was merged into the master branch.

Commits
-------

50e41d2 one space too much
5d9a36f small fix and enhancement
1e1cb13 [Routing] added more phpdoc and  replaced 'array of type' by 'Type[]'

Discussion
----------

[Routing] added more phpdoc and  replaced 'array of type' by 'Type[]'

---------------------------------------------------------------------------

by Tobion at 2012-11-12T17:03:01Z

@fabpot you should squash with your great merging tool ;)
This commit is contained in:
Fabien Potencier 2012-11-13 13:49:27 +01:00
commit 15fd24e46d
21 changed files with 195 additions and 60 deletions

View File

@ -22,7 +22,10 @@ namespace Symfony\Component\Routing\Exception;
*/
class MethodNotAllowedException extends \RuntimeException implements ExceptionInterface
{
protected $allowedMethods;
/**
* @var array
*/
protected $allowedMethods = array();
public function __construct(array $allowedMethods, $message = null, $code = 0, \Exception $previous = null)
{
@ -31,6 +34,11 @@ class MethodNotAllowedException extends \RuntimeException implements ExceptionIn
parent::__construct($message, $code, $previous);
}
/**
* Gets the allowed HTTP methods.
*
* @return array
*/
public function getAllowedMethods()
{
return $this->allowedMethods;

View File

@ -20,6 +20,9 @@ use Symfony\Component\Routing\RouteCollection;
*/
abstract class GeneratorDumper implements GeneratorDumperInterface
{
/**
* @var RouteCollection
*/
private $routes;
/**

View File

@ -28,8 +28,24 @@ use Symfony\Component\HttpKernel\Log\LoggerInterface;
*/
class UrlGenerator implements UrlGeneratorInterface, ConfigurableRequirementsInterface
{
/**
* @var RouteCollection
*/
protected $routes;
/**
* @var RequestContext
*/
protected $context;
/**
* @var Boolean|null
*/
protected $strictRequirements = true;
/**
* @var LoggerInterface|null
*/
protected $logger;
/**
@ -60,14 +76,12 @@ class UrlGenerator implements UrlGeneratorInterface, ConfigurableRequirementsInt
'%7C' => '|',
);
protected $routes;
/**
* Constructor.
*
* @param RouteCollection $routes A RouteCollection instance
* @param RequestContext $context The context
* @param LoggerInterface $logger A logger instance
* @param RouteCollection $routes A RouteCollection instance
* @param RequestContext $context The context
* @param LoggerInterface|null $logger A logger instance
*
* @api
*/

View File

@ -56,9 +56,20 @@ use Symfony\Component\Config\Loader\LoaderResolverInterface;
*/
abstract class AnnotationClassLoader implements LoaderInterface
{
/**
* @var Reader
*/
protected $reader;
/**
* @var string
*/
protected $routeAnnotationClass = 'Symfony\\Component\\Routing\\Annotation\\Route';
protected $defaultRouteIndex;
/**
* @var integer
*/
protected $defaultRouteIndex = 0;
/**
* Constructor.
@ -83,8 +94,8 @@ abstract class AnnotationClassLoader implements LoaderInterface
/**
* Loads from annotations from a class.
*
* @param string $class A class name
* @param string $type The resource type
* @param string $class A class name
* @param string|null $type The resource type
*
* @return RouteCollection A RouteCollection instance
*

View File

@ -25,8 +25,8 @@ class AnnotationDirectoryLoader extends AnnotationFileLoader
/**
* Loads from annotations from a directory.
*
* @param string $path A directory path
* @param string $type The resource type
* @param string $path A directory path
* @param string|null $type The resource type
*
* @return RouteCollection A RouteCollection instance
*

View File

@ -14,7 +14,7 @@ namespace Symfony\Component\Routing\Loader;
use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Config\Resource\FileResource;
use Symfony\Component\Config\Loader\FileLoader;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\Config\FileLocatorInterface;
/**
* AnnotationFileLoader loads routing information from annotations set
@ -29,11 +29,11 @@ class AnnotationFileLoader extends FileLoader
/**
* Constructor.
*
* @param FileLocator $locator A FileLocator instance
* @param FileLocatorInterface $locator A FileLocator instance
* @param AnnotationClassLoader $loader An AnnotationClassLoader instance
* @param string|array $paths A path or an array of paths where to look for resources
*/
public function __construct(FileLocator $locator, AnnotationClassLoader $loader, $paths = array())
public function __construct(FileLocatorInterface $locator, AnnotationClassLoader $loader, $paths = array())
{
if (!function_exists('token_get_all')) {
throw new \RuntimeException('The Tokenizer extension is required for the routing annotation loaders.');
@ -47,8 +47,8 @@ class AnnotationFileLoader extends FileLoader
/**
* Loads from annotations from a file.
*
* @param string $file A PHP file path
* @param string $type The resource type
* @param string $file A PHP file path
* @param string|null $type The resource type
*
* @return RouteCollection A RouteCollection instance
*

View File

@ -27,8 +27,8 @@ class ClosureLoader extends Loader
/**
* Loads a Closure.
*
* @param \Closure $closure A Closure
* @param string $type The resource type
* @param \Closure $closure A Closure
* @param string|null $type The resource type
*
* @api
*/

View File

@ -28,8 +28,8 @@ class PhpFileLoader extends FileLoader
/**
* Loads a PHP file.
*
* @param mixed $file A PHP file path
* @param string $type The resource type
* @param string $file A PHP file path
* @param string|null $type The resource type
*
* @api
*/

View File

@ -28,8 +28,8 @@ class XmlFileLoader extends FileLoader
/**
* Loads an XML file.
*
* @param string $file An XML file path
* @param string $type The resource type
* @param string $file An XML file path
* @param string|null $type The resource type
*
* @return RouteCollection A RouteCollection instance
*
@ -65,6 +65,8 @@ class XmlFileLoader extends FileLoader
* @param \DOMElement $node the node to parse
* @param string $path the path of the XML file being processed
* @param string $file
*
* @throws \InvalidArgumentException When a tag can't be parsed
*/
protected function parseNode(RouteCollection $collection, \DOMElement $node, $path, $file)
{

View File

@ -33,8 +33,8 @@ class YamlFileLoader extends FileLoader
/**
* Loads a Yaml file.
*
* @param string $file A Yaml file path
* @param string $type The resource type
* @param string $file A Yaml file path
* @param string|null $type The resource type
*
* @return RouteCollection A RouteCollection instance
*

View File

@ -18,14 +18,25 @@ namespace Symfony\Component\Routing\Matcher\Dumper;
*/
class DumperCollection implements \IteratorAggregate
{
/**
* @var DumperCollection|null
*/
private $parent;
/**
* @var (DumperCollection|DumperRoute)[]
*/
private $children = array();
/**
* @var array
*/
private $attributes = array();
/**
* Returns the children routes and collections.
*
* @return array Array of DumperCollection|DumperRoute
* @return (DumperCollection|DumperRoute)[] Array of DumperCollection|DumperRoute
*/
public function all()
{

View File

@ -18,6 +18,9 @@ namespace Symfony\Component\Routing\Matcher\Dumper;
*/
class DumperPrefixCollection extends DumperCollection
{
/**
* @var string
*/
private $prefix = '';
/**

View File

@ -20,7 +20,14 @@ use Symfony\Component\Routing\Route;
*/
class DumperRoute
{
/**
* @var string
*/
private $name;
/**
* @var Route
*/
private $route;
/**

View File

@ -20,6 +20,9 @@ use Symfony\Component\Routing\RouteCollection;
*/
abstract class MatcherDumper implements MatcherDumperInterface
{
/**
* @var RouteCollection
*/
private $routes;
/**

View File

@ -324,8 +324,8 @@ EOF;
/**
* Flattens a tree of routes to a single collection.
*
* @param RouteCollection $routes Collection of routes
* @param DumperCollection $to A DumperCollection to add routes to
* @param RouteCollection $routes Collection of routes
* @param DumperCollection|null $to A DumperCollection to add routes to
*
* @return DumperCollection
*/

View File

@ -23,9 +23,9 @@ interface RedirectableUrlMatcherInterface
/**
* Redirects the user to another URL.
*
* @param string $path The path info to redirect to.
* @param string $route The route that matched
* @param string $scheme The URL scheme (null to keep the current one)
* @param string $path The path info to redirect to.
* @param string $route The route name that matched
* @param string|null $scheme The URL scheme (null to keep the current one)
*
* @return array An array of parameters
*

View File

@ -30,9 +30,19 @@ class UrlMatcher implements UrlMatcherInterface
const REQUIREMENT_MISMATCH = 1;
const ROUTE_MATCH = 2;
/**
* @var RequestContext
*/
protected $context;
protected $allow;
/**
* @var array
*/
protected $allow = array();
/**
* @var RouteCollection
*/
private $routes;
/**

View File

@ -28,7 +28,11 @@ class RequestContext
private $scheme;
private $httpPort;
private $httpsPort;
private $parameters;
/**
* @var array
*/
private $parameters = array();
/**
* Constructor.
@ -50,7 +54,6 @@ class RequestContext
$this->scheme = strtolower($scheme);
$this->httpPort = $httpPort;
$this->httpsPort = $httpsPort;
$this->parameters = array();
}
public function fromRequest(Request $request)

View File

@ -20,11 +20,34 @@ namespace Symfony\Component\Routing;
*/
class Route implements \Serializable
{
/**
* @var string
*/
private $pattern;
private $defaults;
private $requirements;
private $options;
/**
* @var array
*/
private $defaults = array();
/**
* @var array
*/
private $requirements = array();
/**
* @var array
*/
private $options = array();
/**
* @var null|RouteCompiler
*/
private $compiled;
/**
* @var string
*/
private $hostnamePattern;
private static $compilers = array();
@ -36,11 +59,11 @@ class Route implements \Serializable
*
* * compiler_class: A class name able to compile this route instance (RouteCompiler by default)
*
* @param string $pattern The 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 $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
*
* @api
*/
@ -78,7 +101,7 @@ class Route implements \Serializable
}
/**
* Returns the pattern.
* Returns the pattern for the path.
*
* @return string The pattern
*/
@ -88,7 +111,7 @@ class Route implements \Serializable
}
/**
* Sets the pattern.
* Sets the pattern for the path.
*
* This method implements a fluent interface.
*

View File

@ -26,24 +26,30 @@ use Symfony\Component\Config\Resource\ResourceInterface;
*/
class RouteCollection implements \IteratorAggregate, \Countable
{
private $routes;
private $resources;
private $prefix;
private $parent;
private $hostnamePattern;
/**
* @var (RouteCollection|Route)[]
*/
private $routes = array();
/**
* Constructor.
*
* @api
* @var array
*/
public function __construct()
{
$this->routes = array();
$this->resources = array();
$this->prefix = '';
$this->hostnamePattern = '';
}
private $resources = array();
/**
* @var string
*/
private $prefix = '';
/**
* @var RouteCollection|null
*/
private $parent;
/**
* @var string
*/
private $hostnamePattern = '';
public function __clone()
{
@ -129,7 +135,7 @@ class RouteCollection implements \IteratorAggregate, \Countable
/**
* Returns all routes in this collection and its children.
*
* @return array An array of routes
* @return Route[] An array of routes
*/
public function all()
{

View File

@ -26,13 +26,44 @@ use Symfony\Component\Routing\Matcher\UrlMatcherInterface;
*/
class Router implements RouterInterface
{
/**
* @var UrlMatcherInterface|null
*/
protected $matcher;
/**
* @var UrlGeneratorInterface|null
*/
protected $generator;
/**
* @var RequestContext
*/
protected $context;
/**
* @var LoaderInterface
*/
protected $loader;
/**
* @var RouteCollection|null
*/
protected $collection;
/**
* @var mixed
*/
protected $resource;
protected $options;
/**
* @var array
*/
protected $options = array();
/**
* @var LoggerInterface|null
*/
protected $logger;
/**