当前位置: 首页>>代码示例>>PHP>>正文


PHP RouteCollection::getPrefix方法代码示例

本文整理汇总了PHP中Symfony\Component\Routing\RouteCollection::getPrefix方法的典型用法代码示例。如果您正苦于以下问题:PHP RouteCollection::getPrefix方法的具体用法?PHP RouteCollection::getPrefix怎么用?PHP RouteCollection::getPrefix使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Symfony\Component\Routing\RouteCollection的用法示例。


在下文中一共展示了RouteCollection::getPrefix方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: resolveParameters

 /**
  * Replaces placeholders with service container parameter values in:
  * - the route defaults,
  * - the route requirements,
  * - the route pattern.
  *
  * @param RouteCollection $collection
  */
 private function resolveParameters(RouteCollection $collection)
 {
     foreach ($collection as $route) {
         if ($route instanceof RouteCollection) {
             $this->resolveParameters($route);
         } else {
             foreach ($route->getDefaults() as $name => $value) {
                 $route->setDefault($name, $this->resolveString($value));
             }
             foreach ($route->getRequirements() as $name => $value) {
                 $route->setRequirement($name, $this->resolveString($value));
             }
             $collection->setPrefix('/' . ltrim($this->resolveString($collection->getPrefix()), '/'));
             $route->setPattern($this->resolveString($route->getPattern()));
         }
     }
 }
开发者ID:joan16v,项目名称:symfony2_test,代码行数:25,代码来源:Router.php

示例2: testAddPrefix

 public function testAddPrefix()
 {
     $collection = new RouteCollection();
     $collection->add('foo', $foo = new Route('/foo'));
     $collection->add('bar', $bar = new Route('/bar'));
     $collection->addPrefix('/{admin}', array('admin' => 'admin'), array('admin' => '\\d+'), array('foo' => 'bar'));
     $this->assertEquals('/{admin}/foo', $collection->get('foo')->getPattern(), '->addPrefix() adds a prefix to all routes');
     $this->assertEquals('/{admin}/bar', $collection->get('bar')->getPattern(), '->addPrefix() adds a prefix to all routes');
     $this->assertEquals(array('admin' => 'admin'), $collection->get('foo')->getDefaults(), '->addPrefix() adds a prefix to all routes');
     $this->assertEquals(array('admin' => 'admin'), $collection->get('bar')->getDefaults(), '->addPrefix() adds a prefix to all routes');
     $this->assertEquals(array('admin' => '\\d+'), $collection->get('foo')->getRequirements(), '->addPrefix() adds a prefix to all routes');
     $this->assertEquals(array('admin' => '\\d+'), $collection->get('bar')->getRequirements(), '->addPrefix() adds a prefix to all routes');
     $this->assertEquals(array('foo' => 'bar', 'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler'), $collection->get('foo')->getOptions(), '->addPrefix() adds an option to all routes');
     $this->assertEquals(array('foo' => 'bar', 'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler'), $collection->get('bar')->getOptions(), '->addPrefix() adds an option to all routes');
     $collection->addPrefix('0');
     $this->assertEquals('/0/{admin}', $collection->getPrefix(), '->addPrefix() ensures a prefix must start with a slash and must not end with a slash');
 }
开发者ID:JPunto,项目名称:Symfony,代码行数:17,代码来源:RouteCollectionTest.php

示例3: testAddPrefix

 public function testAddPrefix()
 {
     $collection = new RouteCollection();
     $collection->add('foo', $foo = new Route('/foo'));
     $collection2 = new RouteCollection();
     $collection2->add('bar', $bar = new Route('/bar'));
     $collection->addCollection($collection2);
     $this->assertSame('', $collection->getPrefix(), '->getPrefix() is initialized with ""');
     $collection->addPrefix(' / ');
     $this->assertSame('', $collection->getPrefix(), '->addPrefix() trims the prefix and a single slash has no effect');
     $collection->addPrefix('/{admin}', array('admin' => 'admin'), array('admin' => '\d+'), array('foo' => 'bar'));
     $this->assertEquals('/{admin}/foo', $collection->get('foo')->getPath(), '->addPrefix() adds a prefix to all routes');
     $this->assertEquals('/{admin}/bar', $collection->get('bar')->getPath(), '->addPrefix() adds a prefix to all routes');
     $this->assertEquals(array('admin' => 'admin'), $collection->get('foo')->getDefaults(), '->addPrefix() adds defaults to all routes');
     $this->assertEquals(array('admin' => 'admin'), $collection->get('bar')->getDefaults(), '->addPrefix() adds defaults to all routes');
     $this->assertEquals(array('admin' => '\d+'), $collection->get('foo')->getRequirements(), '->addPrefix() adds requirements to all routes');
     $this->assertEquals(array('admin' => '\d+'), $collection->get('bar')->getRequirements(), '->addPrefix() adds requirements to all routes');
     $this->assertEquals(
         array('foo' => 'bar', 'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler'),
         $collection->get('foo')->getOptions(), '->addPrefix() adds an option to all routes'
     );
     $this->assertEquals(
         array('foo' => 'bar', 'compiler_class' => 'Symfony\\Component\\Routing\\RouteCompiler'),
         $collection->get('bar')->getOptions(), '->addPrefix() adds an option to all routes'
     );
     $collection->addPrefix('0');
     $this->assertEquals('/0/{admin}', $collection->getPrefix(), '->addPrefix() ensures a prefix must start with a slash and must not end with a slash');
     $collection->addPrefix('/ /');
     $this->assertSame('/ /0/{admin}', $collection->getPrefix(), '->addPrefix() can handle spaces if desired');
     $this->assertSame('/ /0/{admin}/foo', $collection->get('foo')->getPath(), 'the route path is in synch with the collection prefix');
     $this->assertSame('/ /0/{admin}/bar', $collection->get('bar')->getPath(), 'the route path in a sub-collection is in synch with the collection prefix');
 }
开发者ID:nysander,项目名称:symfony,代码行数:32,代码来源:RouteCollectionTest.php

示例4: compileRoutes

 /**
  * Generates PHP code recursively to match a RouteCollection with all child routes and child collections.
  *
  * @param RouteCollection $routes               A RouteCollection instance
  * @param Boolean         $supportsRedirections Whether redirections are supported by the base class
  * @param string|null     $parentPrefix         The prefix of the parent collection used to optimize the code
  *
  * @return string PHP code
  */
 private function compileRoutes(RouteCollection $routes, $supportsRedirections, $parentPrefix = null)
 {
     $code = '';
     $prefix = $routes->getPrefix();
     $countDirectChildRoutes = $this->countDirectChildRoutes($routes);
     $countAllChildRoutes = count($routes->all());
     // Can the matching be optimized by wrapping it with the prefix condition
     // - no need to optimize if current prefix is the same as the parent prefix
     // - if $countDirectChildRoutes === 0, the sub-collections can do their own optimizations (in case there are any)
     // - it's not worth wrapping a single child route
     // - prefixes with variables cannot be optimized because routes within the collection might have different requirements for the same variable
     $optimizable = '' !== $prefix && $prefix !== $parentPrefix && $countDirectChildRoutes > 0 && $countAllChildRoutes > 1 && false === strpos($prefix, '{');
     if ($optimizable) {
         $code .= sprintf("    if (0 === strpos(\$pathinfo, %s)) {\n", var_export($prefix, true));
     }
     foreach ($routes as $name => $route) {
         if ($route instanceof Route) {
             // a single route in a sub-collection is not wrapped so it should do its own optimization in ->compileRoute with $parentPrefix = null
             $code .= $this->compileRoute($route, $name, $supportsRedirections, 1 === $countAllChildRoutes ? null : $prefix) . "\n";
         } elseif ($countAllChildRoutes - $countDirectChildRoutes > 0) {
             // we can stop iterating recursively if we already know there are no more routes
             $code .= $this->compileRoutes($route, $supportsRedirections, $prefix);
         }
     }
     if ($optimizable) {
         $code .= "    }\n\n";
         // apply extra indention at each line (except empty ones)
         $code = preg_replace('/^.{2,}$/m', '    $0', $code);
     }
     return $code;
 }
开发者ID:keneanung,项目名称:gw2spidy,代码行数:40,代码来源:PhpMatcherDumper.php


注:本文中的Symfony\Component\Routing\RouteCollection::getPrefix方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。