本文整理汇总了PHP中Silex\ControllerCollection类的典型用法代码示例。如果您正苦于以下问题:PHP ControllerCollection类的具体用法?PHP ControllerCollection怎么用?PHP ControllerCollection使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ControllerCollection类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: connect
public function connect(Application $app)
{
$controllers = new ControllerCollection();
// *******
// ** Signup member
// *******
$controllers->get('signup.html', function () use($app) {
$form = $app['form.factory']->create(new \Aperophp\Form\Signup());
return $app['twig']->render('member/signup.html.twig', array('form' => $form->createView()));
})->bind('_signupmember');
// *******
// *******
// ** Create member
// *******
$controllers->post('create.html', function (Request $request) use($app) {
$form = $app['form.factory']->create(new \Aperophp\Form\Signup());
$form->bindRequest($request);
if ($form->isValid()) {
$data = $form->getData();
// TODO save member in database.
var_dump($data);
die;
}
return $app['twig']->render('member/signup.html.twig', array('form' => $form->createView()));
})->bind('_createmember');
// *******
return $controllers;
}
示例2: addRoutes
protected function addRoutes(ControllerCollection $c)
{
$c->get('/changelog', 'changeOverview')->bind('changelog');
$c->get('/changelog/{contenttype}/{contentid}/{id}', 'changeRecord')->assert('id', '\\d*')->bind('changelogrecordsingle');
$c->get('/changelog/{contenttype}/{contentid}', 'changeRecordListing')->value('contentid', '0')->value('contenttype', '')->bind('changelogrecordall');
$c->get('/systemlog', 'systemOverview')->bind('systemlog');
}
示例3: addRoutes
protected function addRoutes(ControllerCollection $c)
{
$c->get('/login', 'getLogin')->bind('login');
$c->post('/login', 'postLogin')->bind('postLogin');
$c->match('/logout', 'logout')->bind('logout');
$c->get('/resetpassword', 'resetPassword')->bind('resetpassword');
}
示例4: connect
public function connect(Application $app)
{
$controllers = new ControllerCollection();
$supervisor = new API();
$servers = (include __DIR__ . '/../../config.php');
foreach (array_keys($servers) as $server_id) {
$servers[$server_id]['id'] = $server_id;
}
$controllers->get('/list.{_format}', function ($_format) use($supervisor, $app, $servers) {
if ($_format == 'json') {
return $app->json($servers);
} else {
// use a closure to avoid leaking any vars into the template that we don't explicitly want
return call_user_func(function () use($app) {
$url_root = $app['url_generator']->generate('home');
ob_start();
ob_implicit_flush(false);
include __DIR__ . '/../../views/supervisorui.html.php';
return ob_get_clean();
});
}
})->bind('server_list')->value('_format', 'html');
$controllers->get('/details/{server_id}', function ($server_id) use($supervisor, $app, $servers) {
$server_ip = $servers[$server_id]['ip'];
$details = array_merge(array('version' => $supervisor->getSupervisorVersion('127.0.0.1'), 'pid' => $supervisor->getPID('127.0.0.1')), $supervisor->getState('127.0.0.1'), $servers[$server_id]);
return $app->json($details);
});
return $controllers;
}
示例5: addRoutes
protected function addRoutes(ControllerCollection $c)
{
$c->method('GET|POST');
$c->match('/editcontent/{contenttypeslug}/{id}', 'edit')->bind('editcontent')->assert('id', '\\d*')->value('id', '');
$c->get('/overview/{contenttypeslug}', 'overview')->bind('overview');
$c->get('/relatedto/{contenttypeslug}/{id}', 'related')->bind('relatedto')->assert('id', '\\d*');
}
示例6: addRoutes
protected function addRoutes(ControllerCollection $controllers)
{
$controllers->get('/tokens', array($this, 'indexAction'))->bind('user_tokens');
$controllers->get('/tokens/new', array($this, 'newAction'))->bind('user_tokens_new');
$controllers->post('/tokens/new', array($this, 'newAction'))->bind('user_tokens_new_process');
$controllers->post('/tokens/{token}/delete', array($this, 'deleteAction'))->bind('user_tokens_delete');
}
示例7: addRoutes
protected function addRoutes(ControllerCollection $controllers)
{
$controllers->get('/users/new', array($this, 'newAction'))->bind('user_new');
$controllers->post('/users/new', array($this, 'handleNewAction'))->bind('user_new_handle');
$controllers->get('/users/choose', array($this, 'chooseAction'))->bind('user_choose');
$controllers->get('/users/{name}', array($this, 'showAction'))->bind('user_show');
}
示例8: addRoutes
protected function addRoutes(ControllerCollection $controllers)
{
$controllers->post('/key', [$this, 'create']);
$controllers->get('/key/{id}', [$this, 'show']);
$controllers->put('/key/{id}', [$this, 'update']);
$controllers->delete('/key/{id}', [$this, 'delete']);
}
示例9: connect
public function connect(Application $app)
{
$controllers = new ControllerCollection();
$controllers->get('auth', function () use($app) {
if ($app['session']->has($app['config']['prefix'] . 'authed-user')) {
return $app->redirect('/');
}
return $app['twig']->render('PT/pages/authenticate.html', array('auth_path' => $app['uri']->generate('authenticate')));
})->bind('authenticate');
$controllers->post('auth', function () use($app) {
if ($app['request']->get('username') === $app['config']['authenticate']['username'] && $app['request']->get('password') === $app['config']['authenticate']['password']) {
$userHash = $userHash = sha1($app['config']['authenticate']['username'] . $app['config']['authenticate']['password']);
$currentUser = $app['session']->set($app['config']['prefix'] . 'authed-user', $userHash);
return $app->redirect('/');
} else {
$app['session']->setFlash('error', 'error');
$app['session']->remove($app['config']['prefix'] . 'authed-user');
return $app->redirect($app['uri']->generate('authenticate'));
}
})->bind('do_authenticate');
$controllers->get('deauth', function ($result) use($app) {
$app['session']->remove($app['config']['prefix'] . 'authed-user');
return $app->redirect($app['uri']->generate('authenticate'));
})->value('result', null)->bind('de_authenticate');
return $controllers;
}
示例10: addRoutes
protected function addRoutes(ControllerCollection $controllers)
{
$controllers->get('/password/generate', [$this, 'generatePassword']);
$controllers->post('/password/generate', [$this, 'generatePassword']);
$controllers->get('/password/complication', [$this, 'complicationPassword']);
$controllers->get('/secret', [$this, 'secret']);
}
示例11: connect
public function connect(Application $app)
{
$controllers = new ControllerCollection();
$controllers->match('/{slug}', function (Application $app, Request $request, $username) {
return $this->getProcessor($request)->execute()->getResponse();
});
return $controllers;
}
示例12: process
/**
* Register the method $controllerName as controller for the given method and uri.
*
* @param \Silex\ControllerCollection $cc
* @param string $controllerName Fully qualified method name of the controller
* @return \Silex\Controller
*/
public function process(ControllerCollection $cc, $controllerName)
{
$controller = $cc->match($this->uri, $controllerName);
if ('MATCH' != ($method = strtoupper($this->method))) {
// limit to configured method(s)
$controller = $controller->method($method);
}
return $controller;
}
示例13: addRoutes
protected function addRoutes(ControllerCollection $c)
{
$c->match('/file/edit/{namespace}/{file}', 'edit')->assert('file', '.+')->assert('namespace', '[^/]+')->value('namespace', 'files')->bind('fileedit')->after(function (Request $request, Response $response) {
if ($request->isMethod('POST')) {
$response->headers->set('X-XSS-Protection', '0');
}
});
$c->match('/files/{namespace}/{path}', 'manage')->assert('namespace', '[^/]+')->assert('path', '.*')->value('namespace', 'files')->value('path', '')->bind('files');
}
示例14: 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());
}
示例15: testMount
public function testMount()
{
$mounted = new ControllerCollection(new Route());
$mounted->get('/{name}', function ($name) {
return new Response($name);
});
$app = new Application();
$app->mount('/hello', $mounted);
$response = $app->handle(Request::create('/hello/Silex'));
$this->assertEquals('Silex', $response->getContent());
}