本文整理汇总了PHP中Silex\ControllerCollection::flush方法的典型用法代码示例。如果您正苦于以下问题:PHP ControllerCollection::flush方法的具体用法?PHP ControllerCollection::flush怎么用?PHP ControllerCollection::flush使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Silex\ControllerCollection
的用法示例。
在下文中一共展示了ControllerCollection::flush方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: flush
/**
* When mounting a controller class with a prefix most times you have a route with a blank path.
* That is the only route that flushes to include an (unwanted) trailing slash.
*
* This fixes that trailing slash.
*
* @param string $prefix
* @return \Symfony\Component\Routing\RouteCollection
*/
public function flush($prefix = '')
{
$routes = parent::flush($prefix);
foreach ($routes->all() as $name => $route) {
if (substr($route->getPath(), -1) === '/') {
$route->setPath(rtrim($route->getPath(), '/'));
}
}
return $routes;
}
示例2: testConflictingRouteNames
public function testConflictingRouteNames()
{
$controllers = new ControllerCollection();
$mountedRootController = new Controller(new Route('/'));
$controllers->add($mountedRootController);
$mainRootController = new Controller(new Route('/'));
$mainRootController->bindDefaultRouteName('main_');
$controllers->flush();
$this->assertNotEquals($mainRootController->getRouteName(), $mountedRootController->getRouteName());
}
示例3: testUniqueGeneratedRouteNames
public function testUniqueGeneratedRouteNames()
{
$controllers = new ControllerCollection(new Route());
$controllers->match('/a-a', function () {
});
$controllers->match('/a_a', function () {
});
$routes = $controllers->flush();
$this->assertCount(2, $routes->all());
$this->assertEquals(array('_a_a', '_a_a_'), array_keys($routes->all()));
}
示例4: testControllerFreezing
public function testControllerFreezing()
{
$routes = new RouteCollection();
$controllers = new ControllerCollection($routes);
$fooController = new Controller(new Route('/foo'));
$fooController->bind('foo');
$controllers->add($fooController);
$barController = new Controller(new Route('/bar'));
$barController->bind('bar');
$controllers->add($barController);
$controllers->flush();
try {
$fooController->bind('foo2');
$this->fail();
} catch (ControllerFrozenException $e) {
}
try {
$barController->bind('bar2');
$this->fail();
} catch (ControllerFrozenException $e) {
}
}
示例5: testRoutesFactoryInConstructor
public function testRoutesFactoryInConstructor()
{
$app = new Application();
$app['routes_factory'] = $app->factory(function () {
return new RouteCollectionSubClass2();
});
$controllers = new ControllerCollection(new Route(), $app['routes_factory']);
$routes = $controllers->flush();
$this->assertInstanceOf('Silex\\Tests\\RouteCollectionSubClass2', $routes);
}
示例6: testUniqueGeneratedRouteNamesAmongNestedMounts
public function testUniqueGeneratedRouteNamesAmongNestedMounts()
{
$controllers = new ControllerCollection(new Route());
$controllers->mount('/root-a', $rootA = new ControllerCollection(new Route()));
$controllers->mount('/root_a', $rootB = new ControllerCollection(new Route()));
$rootA->mount('/tree', $treeA = new ControllerCollection(new Route()));
$rootB->mount('/tree', $treeB = new ControllerCollection(new Route()));
$treeA->match('/leaf', function () {
});
$treeB->match('/leaf', function () {
});
$routes = $controllers->flush();
$this->assertCount(2, $routes->all());
$this->assertEquals(array('_root_a_tree_leaf', '_root_a_tree_leaf_'), array_keys($routes->all()));
}