Skip to content

Instantly share code, notes, and snippets.

@serebro
Last active August 29, 2015 14:06
Show Gist options
  • Save serebro/390f723b5c50050c8c30 to your computer and use it in GitHub Desktop.
Save serebro/390f723b5c50050c8c30 to your computer and use it in GitHub Desktop.
<?php
$router = new \Phalcon\Mvc\Router(false);
$router->removeExtraSlashes(true);
$router->setUriSource(\Phalcon\Mvc\Router::URI_SOURCE_SERVER_REQUEST_URI);
$api = new \Phalcon\Mvc\Router\Group();
$api->setPrefix('/api/1');
$api->addOptions('/{controller}', array('action' => 'options', 'namespace' => 'Api\V1'));
$api->addGet ('/{controller}', array('action' => 'index', 'namespace' => 'Api\V1'));
$api->addPost ('/{controller}', array('action' => 'post', 'namespace' => 'Api\V1'));
$api->add ('/{controller}/{action}', array('namespace' => 'Api\V1'));
$api->addOptions('/{controller}/{id:[0-9a-f]{24}}', array('action' => 'options', 'namespace' => 'Api\V1'));
$api->addGet ('/{controller}/{id:[0-9a-f]{24}}', array('action' => 'get', 'namespace' => 'Api\V1'));
$api->addPut ('/{controller}/{id:[0-9a-f]{24}}', array('action' => 'put', 'namespace' => 'Api\V1'));
$api->addDelete ('/{controller}/{id:[0-9a-f]{24}}', array('action' => 'delete', 'namespace' => 'Api\V1'));
$api->add ('/{controller}/{id:[0-9a-f]{24}}/{action}', array('namespace' => 'Api\V1'));
$router->mount($api);
$lr = new \Phalcon\Mvc\Router\LangGroup();
$lg = SUPPORTED_LANGUAGES;
$lr->setPrefix("{lang:{$lg}}");
$lr->add('', array('lang' => 1, 'controller' => 'index', 'action' => 'index'))->setName('lang');
$lr->add('/{controller}', array('action' => 'index'));
$lr->add('/{controller}/{slug}', array('action' => 'view'));
$lr->add('/{controller}/{slug}/{action}');
$lr->add('/{controller}/{action:index|view|add|edit|save|route404}');
$lr->add('/{controller:session}/{action:index|register|view|start|end|login|reg}');
$lr->add('/{controller}/{id:([0-9a-f]{24})}/{action:edit}');
$lr->add('/{controller:test}/{action:index|acl}');
$lr->add('/{controller:email}/{id:([0-9a-f]{24})}/{action:request}');
$router->mount($lr);
//$router->notFound(array('controller' => 'index', 'action' => 'route404'));
return $router;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment