class ProviderBasedGenerator in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/symfony-cmf/routing/ProviderBasedGenerator.php \Symfony\Cmf\Component\Routing\ProviderBasedGenerator
A Generator that uses a RouteProvider rather than a RouteCollection
@author Larry Garfield
Hierarchy
- class \Symfony\Component\Routing\Generator\UrlGenerator implements ConfigurableRequirementsInterface, UrlGeneratorInterface
- class \Symfony\Cmf\Component\Routing\ProviderBasedGenerator implements VersatileGeneratorInterface
Expanded class hierarchy of ProviderBasedGenerator
1 file declares its use of ProviderBasedGenerator
- ProviderBasedGeneratorTest.php in vendor/
symfony-cmf/ routing/ Tests/ Routing/ ProviderBasedGeneratorTest.php
File
- vendor/
symfony-cmf/ routing/ ProviderBasedGenerator.php, line 26
Namespace
Symfony\Cmf\Component\RoutingView source
class ProviderBasedGenerator extends UrlGenerator implements VersatileGeneratorInterface {
/**
* The route provider for this generator.
*
* @var RouteProviderInterface
*/
protected $provider;
/**
* @param RouteProviderInterface $provider
* @param LoggerInterface $logger
*/
public function __construct(RouteProviderInterface $provider, LoggerInterface $logger = null) {
$this->provider = $provider;
$this->logger = $logger;
$this->context = new RequestContext();
}
/**
* {@inheritDoc}
*/
public function generate($name, $parameters = array(), $absolute = false) {
if ($name instanceof SymfonyRoute) {
$route = $name;
}
elseif (null === ($route = $this->provider
->getRouteByName($name, $parameters))) {
throw new RouteNotFoundException(sprintf('Route "%s" does not exist.', $name));
}
// the Route has a cache of its own and is not recompiled as long as it does not get modified
$compiledRoute = $route
->compile();
$hostTokens = $compiledRoute
->getHostTokens();
$debug_message = $this
->getRouteDebugMessage($name);
return $this
->doGenerate($compiledRoute
->getVariables(), $route
->getDefaults(), $route
->getRequirements(), $compiledRoute
->getTokens(), $parameters, $debug_message, $absolute, $hostTokens);
}
/**
* Support a route object and any string as route name
*
* {@inheritDoc}
*/
public function supports($name) {
return is_string($name) || $name instanceof SymfonyRoute;
}
/**
* {@inheritDoc}
*/
public function getRouteDebugMessage($name, array $parameters = array()) {
if (is_scalar($name)) {
return $name;
}
if (is_array($name)) {
return serialize($name);
}
if ($name instanceof RouteObjectInterface) {
return 'Route with key ' . $name
->getRouteKey();
}
if ($name instanceof SymfonyRoute) {
return 'Route with pattern ' . $name
->getPattern();
}
return get_class($name);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ProviderBasedGenerator:: |
protected | property | The route provider for this generator. | |
ProviderBasedGenerator:: |
public | function |
Generates a URL or path for a specific route based on the given parameters. Overrides UrlGenerator:: |
1 |
ProviderBasedGenerator:: |
public | function |
Convert a route identifier (name, content object etc) into a string
usable for logging and other debug/error messages Overrides VersatileGeneratorInterface:: |
1 |
ProviderBasedGenerator:: |
public | function |
Support a route object and any string as route name Overrides VersatileGeneratorInterface:: |
1 |
ProviderBasedGenerator:: |
public | function |
Overrides UrlGenerator:: |
|
UrlGenerator:: |
protected | property | ||
UrlGenerator:: |
protected | property | This array defines the characters (besides alphanumeric ones) that will not be percent-encoded in the path segment of the generated URL. | |
UrlGenerator:: |
protected | property | ||
UrlGenerator:: |
protected | property | ||
UrlGenerator:: |
protected | property | ||
UrlGenerator:: |
protected | function | 2 | |
UrlGenerator:: |
public | function |
Gets the request context. Overrides RequestContextAwareInterface:: |
|
UrlGenerator:: |
public static | function | Returns the target path as relative reference from the base path. | |
UrlGenerator:: |
public | function |
Returns whether to throw an exception on incorrect parameters.
Null means the requirements check is deactivated completely. Overrides ConfigurableRequirementsInterface:: |
|
UrlGenerator:: |
public | function |
Sets the request context. Overrides RequestContextAwareInterface:: |
|
UrlGenerator:: |
public | function |
Enables or disables the exception on incorrect parameters.
Passing null will deactivate the requirements check completely. Overrides ConfigurableRequirementsInterface:: |
|
UrlGeneratorInterface:: |
constant | Generates an absolute path, e.g. "/dir/file". | ||
UrlGeneratorInterface:: |
constant | Generates an absolute URL, e.g. "http://example.com/dir/file". | ||
UrlGeneratorInterface:: |
constant | Generates a network path, e.g. "//example.com/dir/file". Such reference reuses the current scheme but specifies the host. | ||
UrlGeneratorInterface:: |
constant | Generates a relative path based on the current request path, e.g. "../parent-file". |