本文整理汇总了PHP中Router::addRoute方法的典型用法代码示例。如果您正苦于以下问题:PHP Router::addRoute方法的具体用法?PHP Router::addRoute怎么用?PHP Router::addRoute使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Router
的用法示例。
在下文中一共展示了Router::addRoute方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getController
public function getController()
{
$Router = new Router();
$this->Router = $Router;
$xml = new \DOMDocument();
$xml->load(__DIR__ . '/../../App/' . $this->name . '/Config/routes.xml');
$routes = $xml->getElementsByTagName('route');
// On parcourt les routes du fichier XML.
foreach ($routes as $route) {
$vars = [];
// On regarde si des variables sont présentes dans l'URL.
if ($route->hasAttribute('vars')) {
$vars = explode(',', $route->getAttribute('vars'));
}
// On ajoute la route au routeur.
$Router->addRoute(new Route($route->getAttribute('url'), $route->getAttribute('module'), $route->getAttribute('action'), $vars));
}
try {
// On récupère la route correspondante à l'URL.
$matchedRoute = $Router->getRoute($this->httpRequest->requestURI());
} catch (\RuntimeException $e) {
if ($e->getCode() == Router::NO_ROUTE) {
// Si aucune route ne correspond, c'est que la page demandée n'existe pas.
$this->httpResponse->redirect404();
}
}
// On ajoute les variables de l'URL au tableau $_GET.
$_GET = array_merge($_GET, $matchedRoute->vars());
// On instancie le contrôleur.
$controllerClass = 'App\\' . $this->name . '\\Modules\\' . $matchedRoute->module() . '\\' . $matchedRoute->module() . 'Controller';
return new $controllerClass($this, $matchedRoute->module(), $matchedRoute->action());
}
示例2: testUrlizeUsingAnNamedRouteThrowsIfNotApplicable
public function testUrlizeUsingAnNamedRouteThrowsIfNotApplicable()
{
$AuthorRoute = $this->mock('AkRoute', array('urlize' => new RouteDoesNotMatchParametersException()));
$this->Router->addRoute('author', $AuthorRoute);
$this->expectException('RouteDoesNotMatchParametersException');
$this->Router->author_url(array('name' => 'martin'));
}
示例3: getController
public function getController()
{
$router = new Router();
$xml = new \DOMDocument();
$xml->load(__DIR__ . '/../../App/' . $this->name . '/Config/route.xml');
$routes = $xml->getElementByTagName("route");
foreach ($routes as $route) {
$vars = [];
if ($route->hasAttribute('vars')) {
$vars = explode(',', $route->getAttribute('vars'));
}
$router->addRoute(new Route($route->getAttribute('url'), $route->getAttribute('module'), $route->getAttribute('action'), $vars));
}
try {
$matched_route = $router->getRoute($this->httpRequest->requestURI());
} catch (\RuntimeException $exception) {
if ($exception->getCode() == Router::NO_ROUTE) {
$this->httpResponse->redirect404();
}
}
// Add variables in tab: $_GET
$_GET = array_merge($_GET, $matched_route->module(), $matched_route->action());
// Instancie the controller
$controller_class = 'App\\' . $this->name . '\\Modules\\' . $matched_route->module() . '\\' . $matched_route->module() . 'Controllers';
return new $controller_class($this, $matched_route->module(), $matched_route->action());
}
示例4: array
function testUrlizeUsingAnNamedRouteThrowsIfNotApplicable()
{
$AuthorRoute = $this->getMock('AkRoute', array(), array('author/:name'));
$AuthorRoute->expects($this->once())->method('urlize')->with(array('name' => 'martin'))->will($this->throwException(new RouteDoesNotMatchParametersException()));
$this->Router->addRoute('author', $AuthorRoute);
$this->setExpectedException('RouteDoesNotMatchParametersException');
$this->Router->author_url(array('name' => 'martin'));
}
示例5: getController
public function getController()
{
$router = new Router();
$xml = new \DOMDocument();
$xml->load(__DIR__ . '/../../JVN/' . $this->name . '/Config/routes.xml');
$routes = $xml->getElementsByTagName('route');
foreach ($routes as $route) {
$vars = [];
if ($route->hasAttribute('vars')) {
$vars = explode(',', $route->getAttribute('vars'));
}
$router->addRoute(new Route($route->getAttribute('url'), $route->getAttribute('module'), $route->getAttribute('action'), $vars));
}
try {
$matchedRoute = $router->getRoute($this->httpRequest->requestURL());
} catch (\RuntimeException $e) {
if ($e->getCode() == Router::NO_ROUTE) {
$this->httpResponse->redirect404();
}
}
$_GET = array_merge($_GET, $matchedRoute->vars());
$controllerClass = 'JVN\\' . $this->name . '\\Modules\\' . $matchedRoute->module() . '\\' . $matchedRoute->module() . 'Controller';
return new $controllerClass($this, $matchedRoute->module(), $matchedRoute->action());
}
示例6: array
Router::addRoute('adminNodeCreate', $aP . 'node/create', array('controller' => 'AdminNode', 'action' => 'create'));
/** Blog & Comment Routes **/
Router::addRoute('adminBlogPost', $aP . 'blog', array('controller' => 'AdminBlogPost'));
Router::addRoute('adminBlogPostPaged', $aP . 'blog/page-:page', array('controller' => 'AdminBlogPost'));
Router::addRoute('adminBlogPostId', $aP . 'blog/:id/:action', array('controller' => 'AdminBlogPost'));
Router::addRoute('adminBlogPostCreate', $aP . 'blog/:action', array('controller' => 'AdminBlogPost'));
Router::addRoute('adminBlogPostSearch', $aP . 'blog/search/:q', array('controller' => 'AdminBlogPost', 'action' => 'search', 'q' => false, 'fields' => array('headline', 'BlogPost.id', 'tags')));
/** Comment Routes **/
Router::addRoute('adminComment', $aP . 'comment', array('controller' => 'AdminComment'));
Router::addRoute('adminCommentBlogPost', $aP . 'comment/blogPost/:blogPostId', array('controller' => 'AdminComment'));
Router::addRoute('adminCommentPaged', $aP . 'comment/page-:page', array('controller' => 'AdminComment'));
Router::addRoute('adminCommentId', $aP . 'comment/:id/:action', array('controller' => 'AdminComment', 'action' => 'edit'));
/** Media Files **/
Router::addRoute('adminMediaFiles', $aP . 'files/', array('controller' => 'AdminFolder', 'action' => 'view'));
Router::addRoute('adminMediaFilesPaged', $aP . 'files/page-:page', array('controller' => 'AdminFolder', 'action' => 'view'));
Router::addRoute('adminMediaFileSearch', $aP . 'files/search/:q', array('controller' => 'AdminMediaFile', 'action' => 'search', 'q' => false, 'fields' => 'filename'));
Router::addRoute('adminMediaFileId', $aP . 'files/:id/:action', array('controller' => 'AdminMediaFile', 'action' => 'edit'));
Router::addRoute('adminMediaUpload', $aP . 'files/upload/', array('controller' => 'AdminMediaFile', 'action' => 'upload'));
Router::addRoute('adminMediaFileMove', $aP . 'files/:id/:action/(?P<direction>up|down|top|bottom)', array('controller' => 'AdminMediaFile'));
/** Folder Routes **/
Router::addRoute('adminFolderCreate', $aP . 'folder/create/', array('controller' => 'AdminFolder', 'action' => 'create'));
Router::addRoute('adminFolderView', $aP . 'folder/:id/', array('controller' => 'AdminFolder', 'action' => 'view'));
Router::addRoute('adminFolderViewPaged', $aP . 'folder/:id/page-:page', array('controller' => 'AdminFolder', 'action' => 'view'));
Router::addRoute('adminFolderUpload', $aP . 'folder/:folder_id/upload', array('controller' => 'AdminMediaFile', 'action' => 'upload'));
Router::addRoute('adminFolderId', $aP . 'folder/:id/:action', array('controller' => 'AdminFolder'));
/** scaffold **/
Router::addRoute('adminScaffold', $aP . ':controller/:action', array('action' => 'index', 'controllerPrefix' => 'Admin'));
Router::addRoute('adminScaffoldId', $aP . ':controller/:id/:action', array('action' => 'index', 'controllerPrefix' => 'Admin'));
/** 404 Route for admin pages too **/
Router::addRoute('admin404', $aP . '*', array('controller' => 'Error', 'action' => '404'));
示例7: Router
// require the libraries which we will be using
require_once INCLUDE_DIR . '/PageError/PageError.php';
require_once INCLUDE_DIR . '/php-router/php-router.php';
require_once INCLUDE_DIR . '/Twig/lib/Twig/Autoloader.php';
// register the Twig Autoloader
Twig_Autoloader::register();
// Create a new instance of Router
$router = new Router();
// Get an instance of Dispatcher
$dispatcher = new Dispatcher();
$dispatcher->setSuffix('Controller');
$dispatcher->setClassPath(CONTROLLER_DIR);
// Set up your default route:
$default_route = new Route('/');
$default_route->setMapClass('default')->setMapMethod('index');
$router->addRoute('default', $default_route);
$url = urldecode($_SERVER['REQUEST_URI']);
try {
$found_route = $router->findRoute($url);
$dispatcher->dispatch($found_route);
} catch (RouteNotFoundException $e) {
PageError::show('404', $url);
} catch (badClassNameException $e) {
PageError::show('400', $url);
} catch (classFileNotFoundException $e) {
PageError::show('500', $url);
} catch (classNameNotFoundException $e) {
PageError::show('500', $url);
} catch (classMethodNotFoundException $e) {
PageError::show('500', $url);
} catch (classNotSpecifiedException $e) {
示例8: array
Router::addRoute('^(?P<route>.*)$', array('PermalinkController', 'handle'));
/**
* Specific routes next
*/
// Main Index
Router::addRoute('^/$', 'home.php');
// About page
Router::addRoute('^/about/?(.*)', 'about.php');
// Admin section
Router::addRoute('^/admin/?(.*)', 'admin/index.php');
// Downloads and API
Router::addRoute('^/downloads/?(.*)', 'downloads/index.php');
// Search
Router::addRoute('^/search/?(.*)', 'search.php');
// Browse
Router::addRoute('^/browse/?(.*)', array('StructureController', 'handle'));
// New activation
Router::addRoute('^/api-key/activate/(?P<secret>.*)', array('ApiKeyController', 'activateKey'));
// Old activation
Router::addRoute('^/api-key/\\?secret=(?P<secret>.*)', array('ApiKeyController', 'activateKey'));
// Create an API Key
Router::addRoute('^/api-key/$', array('ApiKeyController', 'requestKey'));
/**
* Dynamic routes last, most specific to least specific
*/
// API
Router::addRoute('^/api/((?P<api_version>([0-9]+)\\.([0-9]+))/)?(?P<operation>structure|law|)(?P<route>/.*)', array('APIPermalinkController', 'handle'));
Router::addRoute('^/api/((?P<api_version>([0-9]+)\\.([0-9]+))/)?dictionary/((?P<term>.*)/)?', array('APIDictionaryController', 'handle'));
Router::addRoute('^/api/((?P<api_version>([0-9]+)\\.([0-9]+))/)?search/(?P<term>.*)/', array('APISearchController', 'handle'));
Router::addRoute('^/api/((?P<api_version>([0-9]+)\\.([0-9]+))/)?suggest/(?P<term>.*)/', array('APISuggestController', 'handle'));
示例9: Router
}
require "config.php";
foreach (glob("models/*.php") as $file) {
require_once $file;
}
require_once 'PublicDesign.php';
require_once 'PublicSection.php';
$router = new Router();
$rId = '([^/|\\-]+)';
$rDir = '([^/]+)';
$rNum = '([0-9]+)';
$rExtra = '(?:-[^/]*)?';
$rIdExtra = "{$rId}{$rExtra}";
$rNumExtra = "{$rNum}{$rExtra}";
if (Team::isAdmin()) {
$router->addRoute("/unete/", array('JoinUs'));
}
$router->addRoute("/normas/", array('Rules'));
$router->addRoute("/votaciones/", array('Polls'));
$router->addRoute("/votaciones/crear/", array('AddPoll'));
$router->addRoute("/votaciones/{$rNum}/", array('ViewPoll'));
$router->addRoute("/admin/", array('Admin_Index'));
$router->addRoute("/admin/comunicados/", array('Admin_Notices'));
$router->addRoute("/admin/equipos/", array('Admin_Teams'));
$router->addRoute("/admin/equipos/{$rNum}/", array('Admin_Team'));
$router->addRoute("/admin/temporadas/", array('Admin_Seasons'));
$router->addRoute("/admin/temporadas/{$rNum}/", array('Admin_Season'));
$router->addRoute("/admin/temporadas/{$rNum}/jornadas/", array('Admin_Season_Weeks'));
$router->addRoute("/admin/temporadas/{$rNum}/eventos/", array('Admin_Season_Events'));
$router->addRoute("/", array('Index'));
$router->addRoute("/batch/", array('Batch'));
示例10: testQueryParameters
public function testQueryParameters()
{
$router = new Router();
$route = new Route("/2008-08-01/Accounts/:id/IncomingPhoneNumbers");
$route->setMapClass('IncomingPhoneNumbers')->setMapMethod('list');
$route->addDynamicElement(':id', ':id');
$router->addRoute('test', $route);
$found = $router->findRoute('/2008-08-01/Accounts/1/IncomingPhoneNumbers?a=1&b=2');
$this->assertSame($found, $route);
}
示例11: function
/* Only load the class if the name contains accepted characters */
if (preg_match('/[a-z]/i', $class)) {
require_once __DIR__ . '/app/' . $class . '.php';
}
}
/* GET /user/13214/edit/ */
Router::addRoute('GET', '/events/(?<event_id>[0-9]+)/?', function ($args) {
$event_id = $args['event_id'];
$feedContents = file_get_contents('http://www.skiddle.com/api/v1/events/' . $event_id . '/?api_key=838cec44cf59198b22731f4be213988a');
$feedArray = json_decode($feedContents, true);
echo json_encode($feedArray['results']);
});
Router::addRoute('GET', '/images/\\?search=(?<search>[A-Za-z0-9\\% ]+)&count=(?<count>[0-9]+)', function ($args) {
$search = $_GET['search'];
$count = $_GET['count'];
echo json_encode(searchImages($search, $count));
});
//List all the events
Router::addRoute('GET', '/events/?', function () {
$feedContents = file_get_contents('http://www.skiddle.com/api/v1/events/?api_key=838cec44cf59198b22731f4be213988a&eventcode=FEST&offset=0');
$feedArray = json_decode($feedContents, true);
echo json_encode($feedArray['results']);
});
/* GET /user/ */
Router::addRoute('GET', '/user/?', function () {
echo 'List all users';
});
/* GET / */
Router::addRoute('GET', '/?', function () {
echo 'Home';
});
示例12: Router
<?php
require 'config/configs.php';
require 'core/autoloader.php';
//create new router
$router = new Router();
//add new custom routes url-controller-method-type
$router->addRoute("yes/go", "help", "func2", "put,post");
//custom route with parameters
$router->addRoute("show/result/{param}/{param}", "help", "myfunc", "get");
$router->addRoute("Result/Page/{param}", "dbController", "dbTest", "get");
//simple routing
$router->addRoute("ok/good", "test", "f2", "post");
$router->addRoute("billu/barber", "help", "func2", "get");
//RESTful Routing
$router->addRoute("restful/put", "test", "rest", "put");
$router->addRoute("blog/page/{param}/{param}/sort/{param}/year/{param}", "test", "fourargs", "any");
$router->addRoute("work", "test", "f2", "get");
$router->addRoute("category/{param}/year/{param}/month/{param}", "test", "threeargs", "get");
// changed order from 2 to 1
//initialize the router
$router->initialize();
示例13:
<?php
// Set up redirects
Router::addRoute('', 'hello/world');
Router::addRoute('docs', 'docs/overview');
示例14: post
public static function post($mask, $callback)
{
$route = new static('post', $mask, $callback);
return Router::addRoute($route);
}
示例15: router
/**
* Get the router.
* @return Router The router.
*/
public function router()
{
if (empty($this->router)) {
$router = new Router();
$configPath = __DIR__ . '/../etc/app/' . $this->name;
$dir = opendir($configPath);
if ($dir === false) {
throw new \RuntimeException('Failed to open config directory "' . $configPath . '"');
}
$modules = array();
while (false !== ($module = readdir($dir))) {
// Notice that "." is a valid module name
// In fact, you can create a routes file like this : $configPath.'/routes.json'
if ($module == '..') {
continue;
}
if (!is_dir($configPath . '/' . $module)) {
continue;
}
$modules[] = $module;
}
closedir($dir);
//Sorting modules is important :
//"." must be at the begining, because it has the greatest priority
sort($modules);
foreach ($modules as $module) {
$routesPath = $configPath . '/' . $module . '/routes.json';
if (file_exists($routesPath)) {
$json = file_get_contents($routesPath);
if ($json === false) {
continue;
}
$routes = json_decode($json, true);
if ($routes === null) {
continue;
}
foreach ($routes as $route) {
$varsNames = isset($route['vars']) && is_array($route['vars']) ? $route['vars'] : array();
if ($module == '.') {
//Global route
$routeModule = $route['module'];
} else {
$routeModule = $module;
}
$router->addRoute(new Route($route['url'], $routeModule, $route['action'], $varsNames));
}
}
}
$this->router = $router;
}
return $this->router;
}