96 lines
4.4 KiB
Plaintext
96 lines
4.4 KiB
Plaintext
<?php
|
|
/*************************************************************************************/
|
|
/* */
|
|
/* Thelia */
|
|
/* */
|
|
/* Copyright (c) OpenStudio */
|
|
/* email : info@thelia.net */
|
|
/* web : http://www.thelia.net */
|
|
/* */
|
|
/* This program is free software; you can redistribute it and/or modify */
|
|
/* it under the terms of the GNU General Public License as published by */
|
|
/* the Free Software Foundation; either version 3 of the License */
|
|
/* */
|
|
/* This program is distributed in the hope that it will be useful, */
|
|
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
|
|
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
|
|
/* GNU General Public License for more details. */
|
|
/* */
|
|
/* You should have received a copy of the GNU General Public License */
|
|
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
/* */
|
|
/*************************************************************************************/
|
|
|
|
namespace Thelia\Routing;
|
|
|
|
|
|
|
|
use Symfony\Component\Routing\Exception\InvalidParameterException;
|
|
use Symfony\Component\Routing\Exception\MissingMandatoryParametersException;
|
|
use Symfony\Component\Routing\Exception\RouteNotFoundException;
|
|
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
|
use Symfony\Component\Routing\RequestContext;
|
|
|
|
class NullUrlGenerator implements UrlGeneratorInterface
|
|
{
|
|
|
|
protected $context;
|
|
|
|
/**
|
|
* Sets the request context.
|
|
*
|
|
* @param RequestContext $context The context
|
|
*
|
|
* @api
|
|
*/
|
|
public function setContext(RequestContext $context)
|
|
{
|
|
$this->context = $context;
|
|
}
|
|
|
|
/**
|
|
* Gets the request context.
|
|
*
|
|
* @return RequestContext The context
|
|
*
|
|
* @api
|
|
*/
|
|
public function getContext()
|
|
{
|
|
return $this->context;
|
|
}
|
|
|
|
/**
|
|
* Generates a URL or path for a specific route based on the given parameters.
|
|
*
|
|
* Parameters that reference placeholders in the route pattern will substitute them in the
|
|
* path or host. Extra params are added as query string to the URL.
|
|
*
|
|
* When the passed reference type cannot be generated for the route because it requires a different
|
|
* host or scheme than the current one, the method will return a more comprehensive reference
|
|
* that includes the required params. For example, when you call this method with $referenceType = ABSOLUTE_PATH
|
|
* but the route requires the https scheme whereas the current scheme is http, it will instead return an
|
|
* ABSOLUTE_URL with the https scheme and the current host. This makes sure the generated URL matches
|
|
* the route in any case.
|
|
*
|
|
* If there is no route with the given name, the generator must throw the RouteNotFoundException.
|
|
*
|
|
* @param string $name The name of the route
|
|
* @param mixed $parameters An array of parameters
|
|
* @param Boolean|string $referenceType The type of reference to be generated (one of the constants)
|
|
*
|
|
* @return string The generated URL
|
|
*
|
|
* @throws RouteNotFoundException If the named route doesn't exist
|
|
* @throws MissingMandatoryParametersException When some parameters are missing that are mandatory for the route
|
|
* @throws InvalidParameterException When a parameter value for a placeholder is not correct because
|
|
* it does not match the requirement
|
|
*
|
|
* @api
|
|
*/
|
|
public function generate($name, $parameters = array(), $referenceType = self::ABSOLUTE_PATH)
|
|
{
|
|
throw new InvalidParameterException("this generator cannot be used");
|
|
}
|
|
}
|