本文整理汇总了PHP中Symfony\Component\Routing\CompiledRoute::getRegex方法的典型用法代码示例。如果您正苦于以下问题:PHP CompiledRoute::getRegex方法的具体用法?PHP CompiledRoute::getRegex怎么用?PHP CompiledRoute::getRegex使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symfony\Component\Routing\CompiledRoute
的用法示例。
在下文中一共展示了CompiledRoute::getRegex方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: 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;
}
}
}
示例2: 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');
}
示例3: testAccessors
public function testAccessors()
{
$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($route, $compiled->getRoute(), '__construct() takes a route as its first argument');
$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 fifth argument');
}
示例4: 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);
}
示例5: bindPathParameters
/**
* Get the parameter matches for the path portion of the URI.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
protected function bindPathParameters(Request $request)
{
preg_match($this->compiled->getRegex(), '/' . $request->decodedPath(), $matches);
return $matches;
}