Mercurial > hg > isophonics-drupal-site
comparison vendor/symfony/routing/Generator/UrlGeneratorInterface.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 129ea1e6d783 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 /* | |
4 * This file is part of the Symfony package. | |
5 * | |
6 * (c) Fabien Potencier <fabien@symfony.com> | |
7 * | |
8 * For the full copyright and license information, please view the LICENSE | |
9 * file that was distributed with this source code. | |
10 */ | |
11 | |
12 namespace Symfony\Component\Routing\Generator; | |
13 | |
14 use Symfony\Component\Routing\Exception\InvalidParameterException; | |
15 use Symfony\Component\Routing\Exception\MissingMandatoryParametersException; | |
16 use Symfony\Component\Routing\Exception\RouteNotFoundException; | |
17 use Symfony\Component\Routing\RequestContextAwareInterface; | |
18 | |
19 /** | |
20 * UrlGeneratorInterface is the interface that all URL generator classes must implement. | |
21 * | |
22 * The constants in this interface define the different types of resource references that | |
23 * are declared in RFC 3986: http://tools.ietf.org/html/rfc3986 | |
24 * We are using the term "URL" instead of "URI" as this is more common in web applications | |
25 * and we do not need to distinguish them as the difference is mostly semantical and | |
26 * less technical. Generating URIs, i.e. representation-independent resource identifiers, | |
27 * is also possible. | |
28 * | |
29 * @author Fabien Potencier <fabien@symfony.com> | |
30 * @author Tobias Schultze <http://tobion.de> | |
31 */ | |
32 interface UrlGeneratorInterface extends RequestContextAwareInterface | |
33 { | |
34 /** | |
35 * Generates an absolute URL, e.g. "http://example.com/dir/file". | |
36 */ | |
37 const ABSOLUTE_URL = 0; | |
38 | |
39 /** | |
40 * Generates an absolute path, e.g. "/dir/file". | |
41 */ | |
42 const ABSOLUTE_PATH = 1; | |
43 | |
44 /** | |
45 * Generates a relative path based on the current request path, e.g. "../parent-file". | |
46 * | |
47 * @see UrlGenerator::getRelativePath() | |
48 */ | |
49 const RELATIVE_PATH = 2; | |
50 | |
51 /** | |
52 * Generates a network path, e.g. "//example.com/dir/file". | |
53 * Such reference reuses the current scheme but specifies the host. | |
54 */ | |
55 const NETWORK_PATH = 3; | |
56 | |
57 /** | |
58 * Generates a URL or path for a specific route based on the given parameters. | |
59 * | |
60 * Parameters that reference placeholders in the route pattern will substitute them in the | |
61 * path or host. Extra params are added as query string to the URL. | |
62 * | |
63 * When the passed reference type cannot be generated for the route because it requires a different | |
64 * host or scheme than the current one, the method will return a more comprehensive reference | |
65 * that includes the required params. For example, when you call this method with $referenceType = ABSOLUTE_PATH | |
66 * but the route requires the https scheme whereas the current scheme is http, it will instead return an | |
67 * ABSOLUTE_URL with the https scheme and the current host. This makes sure the generated URL matches | |
68 * the route in any case. | |
69 * | |
70 * If there is no route with the given name, the generator must throw the RouteNotFoundException. | |
71 * | |
72 * The special parameter _fragment will be used as the document fragment suffixed to the final URL. | |
73 * | |
74 * @param string $name The name of the route | |
75 * @param mixed $parameters An array of parameters | |
76 * @param int $referenceType The type of reference to be generated (one of the constants) | |
77 * | |
78 * @return string The generated URL | |
79 * | |
80 * @throws RouteNotFoundException If the named route doesn't exist | |
81 * @throws MissingMandatoryParametersException When some parameters are missing that are mandatory for the route | |
82 * @throws InvalidParameterException When a parameter value for a placeholder is not correct because | |
83 * it does not match the requirement | |
84 */ | |
85 public function generate($name, $parameters = array(), $referenceType = self::ABSOLUTE_PATH); | |
86 } |