本文整理汇总了PHP中Symfony\Component\Routing\CompiledRoute类的典型用法代码示例。如果您正苦于以下问题:PHP CompiledRoute类的具体用法?PHP CompiledRoute怎么用?PHP CompiledRoute使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CompiledRoute类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testAccessors
public function testAccessors()
{
$compiled = new CompiledRoute('prefix', 'regex', array('tokens'), array(), array(), array(), array(), array('variables'));
$this->assertEquals('prefix', $compiled->getStaticPrefix(), '__construct() takes a static prefix as its second argument');
$this->assertEquals('regex', $compiled->getRegex(), '__construct() takes a regexp as its third argument');
$this->assertEquals(array('tokens'), $compiled->getTokens(), '__construct() takes an array of tokens as its fourth argument');
$this->assertEquals(array('variables'), $compiled->getVariables(), '__construct() takes an array of variables as its ninth argument');
}
示例2: testgetPatterngetDefaultsgetOptionsgetRequirements
public function testgetPatterngetDefaultsgetOptionsgetRequirements()
{
$route = new Route('/{foo}', array('foo' => 'bar'), array('foo' => '\\d+'), array('foo' => 'bar'));
$compiled = new CompiledRoute($route, 'prefix', 'regex', array('tokens'), array('variables'));
$this->assertEquals('/{foo}', $compiled->getPattern(), '->getPattern() returns the route pattern');
$this->assertEquals(array('foo' => 'bar'), $compiled->getDefaults(), '->getDefaults() returns the route defaults');
$this->assertEquals(array('foo' => '\\d+'), $compiled->getRequirements(), '->getRequirements() returns the route requirements');
$this->assertEquals(array_merge(array('compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler'), array('foo' => 'bar')), $compiled->getOptions(), '->getOptions() returns the route options');
}
示例3: testgetPatterngetDefaultsgetOptionsgetRequirements
public function testgetPatterngetDefaultsgetOptionsgetRequirements()
{
$route = new Route('/:foo', array('foo' => 'bar'), array('foo' => '\\d+'), array('foo' => 'bar'));
$compiled = new CompiledRoute($route, 'prefix', 'regex', array('tokens'), array('variables'));
$this->assertEquals('/:foo', $compiled->getPattern(), '->getPattern() returns the route pattern');
$this->assertEquals(array('foo' => 'bar'), $compiled->getDefaults(), '->getDefaults() returns the route defaults');
$this->assertEquals(array('foo' => '\\d+'), $compiled->getRequirements(), '->getRequirements() returns the route requirements');
$this->assertEquals(array_merge(array('variable_prefixes' => array(':'), 'segment_separators' => array('/', '.'), 'variable_regex' => '[\\w\\d_]+', 'text_regex' => '.+?', 'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler'), array('foo' => 'bar')), $compiled->getOptions(), '->getOptions() returns the route options');
}
示例4: addCurrentRouteAndParams
/**
* process the route and request and save them.
*
* @param Route $route
*
* @return Route
*/
public function addCurrentRouteAndParams(RouteContract $route)
{
$this->uri = $route->getUri();
$uri = preg_replace('/\\{(\\w+?)\\?\\}/', '{$1}', $this->uri);
/*
* compile the route with symfony Route Compiler
*/
$this->compiled = (new SyfonyRoute($uri))->compile();
/*
* Matches the current request against the compile route RegEx.
*
*/
// decoded request path
$path = $this->request->createFromGlobals()->decodedPath();
$decodedPath = "/" === $path ? $path : '/' . $path;
if (preg_match($this->compiled->getRegex(), $decodedPath, $matches)) {
/*
* extract the parameters and set them to the current route parameters
*/
foreach ($matches as $key => $value) {
if (is_string($key)) {
array_push($this->currentParams, $value);
}
}
/*
* Set the current route to the route
*/
$this->currentRoute[$route->getMethods()][$decodedPath] = $route;
/*
* add the current route parameters to the current route
*/
$this->currentRoute[$route->getMethods()][$decodedPath]->setParameters($this->currentParams);
return $route;
}
/*
* if its a simple route that matches the request, set it to the route and return it
*/
if ($uri == $decodedPath) {
if (sizeof($route->getMethods()) > 1) {
foreach ($route->getMethods() as $method) {
$this->currentRoute[$method][$uri] = $route;
}
} else {
$this->currentRoute[$route->getMethods()][$uri] = $route;
}
}
}
示例5: __construct
/**
* Constructs a new compiled route object.
*
* This is a ridiculously long set of constructor parameters, but as this
* object is little more than a collection of values it's not a serious
* problem. The parent Symfony class does the same, as well, making it
* difficult to override differently.
*
* @param \Symfony\Component\Routing\Route $route
* A original Route instance.
* @param int $fit
* The fitness of the route.
* @param string $fit
* The pattern outline for this route.
* @param int $num_parts
* The number of parts in the path.
* @param string $staticPrefix
* The static prefix of the compiled route
* @param string $regex
* The regular expression to use to match this route
* @param array $tokens
* An array of tokens to use to generate URL for this route
* @param array $pathVariables
* An array of path variables
* @param string|null $hostRegex
* Host regex
* @param array $hostTokens
* Host tokens
* @param array $hostVariables
* An array of host variables
* @param array $variables
* An array of variables (variables defined in the path and in the host patterns)
*/
public function __construct(Route $route, $fit, $pattern_outline, $num_parts, $staticPrefix, $regex, array $tokens, array $pathVariables, $hostRegex = null, array $hostTokens = array(), array $hostVariables = array(), array $variables = array())
{
parent::__construct($staticPrefix, $regex, $tokens, $pathVariables, $hostRegex, $hostTokens, $hostVariables, $variables);
$this->route = $route;
$this->fit = $fit;
$this->patternOutline = $pattern_outline;
$this->numParts = $num_parts;
}
示例6: bindParameters
/**
* Extract the parameter list from the request.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function bindParameters(Request $request)
{
preg_match($this->compiled->getRegex(), '/' . $request->path(), $matches);
$parameters = $this->combineMatchesWithKeys(array_slice($matches, 1));
if (!is_null($this->compiled->getHostRegex())) {
preg_match($this->compiled->getHostRegex(), $request->getHost(), $matches);
$parameters = array_merge($this->combineMatchesWithKeys(array_slice($matches, 1)), $parameters);
}
return $this->parameters = $this->replaceDefaults($parameters);
}
示例7: bindHostParameters
/**
* Extract the parameter list from the host part of the request.
*
* @param \Illuminate\Http\Request $request
* @param array $parameters
* @return array
*/
protected function bindHostParameters(Request $request, $parameters)
{
preg_match($this->compiled->getHostRegex(), $request->getHost(), $matches);
return array_merge($this->matchToKeys(array_slice($matches, 1)), $parameters);
}
示例8: unserialize
/**
* {@inheritdoc}
*/
public function unserialize($serialized)
{
parent::unserialize($serialized);
$data = unserialize($serialized);
$this->fit = $data['fit'];
$this->patternOutline = $data['patternOutline'];
$this->numParts = $data['numParts'];
}