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


PHP Router::add方法代码示例

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


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

示例1: generateRoute

 /**
  * Add all the routes in the router in parameter
  * @param $router Router
  */
 public function generateRoute(Router $router)
 {
     foreach ($this->classes as $class) {
         $classMethods = get_class_methods($this->namespace . $class . 'Controller');
         $rc = new \ReflectionClass($this->namespace . $class . 'Controller');
         $parent = $rc->getParentClass();
         $parent = get_class_methods($parent->name);
         $className = $this->namespace . $class . 'Controller';
         foreach ($classMethods as $methodName) {
             if (in_array($methodName, $parent) || $methodName == 'index') {
                 continue;
             } else {
                 foreach (Router::getSupportedHttpMethods() as $httpMethod) {
                     if (strstr($methodName, $httpMethod)) {
                         continue 2;
                     }
                     if (in_array($methodName . $httpMethod, $classMethods)) {
                         $router->add('/' . strtolower($class) . '/' . $methodName, new $className(), $methodName . $httpMethod, $httpMethod);
                         unset($classMethods[$methodName . $httpMethod]);
                     }
                 }
                 $router->add('/' . strtolower($class) . '/' . $methodName, new $className(), $methodName);
             }
         }
         $router->add('/' . strtolower($class), new $className(), 'index');
     }
 }
开发者ID:thomasmunoz13,项目名称:planning_iut,代码行数:31,代码来源:ClassRouting.php

示例2: registerProviders

 public function registerProviders($providers)
 {
     foreach ($providers as $provider) {
         $collection = $provider->connect($this);
         /** @var ControllerCollection $collection */
         foreach ($collection->getRoutes() as $route) {
             $this->router->add($route);
         }
         unset($collection);
     }
 }
开发者ID:chobie,项目名称:chatwork-api-client,代码行数:11,代码来源:Kernel.php

示例3: getRouter

 public function getRouter()
 {
     $router = new Router();
     foreach ($this->getActionRoutes() as $methodRoute) {
         list($route, $methodName) = $methodRoute;
         $method = new \ReflectionMethod($this, $methodName);
         $httpMethod = 'GET';
         $hasRoute = false;
         if ($comment = $method->getDocComment()) {
             if (preg_match('~^[\\s*]*\\@method\\s([^\\s]+)~im', $comment, $match)) {
                 $httpMethod = trim(strtoupper(array_pop($match)));
             }
             if (preg_match('~^[\\s*]*\\@route\\s([^\\s]+)~im', $comment, $match)) {
                 $route = trim(array_pop($match));
                 $hasRoute = true;
             }
         }
         if (!$hasRoute) {
             foreach ($method->getParameters() as $parameter) {
                 $route .= '/{' . ($parameter->isOptional() ? '?' : '') . $parameter->getName() . '}';
             }
         }
         $router->add($httpMethod, $route, [get_class($this), $methodName]);
     }
     return $router;
 }
开发者ID:eddmann,项目名称:rootr,代码行数:26,代码来源:Controller.php

示例4: testMatchMethod

 public function testMatchMethod()
 {
     $this->object->add(new \PHPixie\Route('get', '/url', array('controller' => 'home', 'action' => 'get'), 'GeT'));
     $this->object->add(new \PHPixie\Route('post', '/url', array('controller' => 'home', 'action' => 'get'), array('PosT')));
     $route = $this->object->match('/url', 'GEt');
     $this->assertEquals('get', $route['route']->name);
     $route = $this->object->match('/url', 'POST');
     $this->assertEquals('post', $route['route']->name);
 }
开发者ID:PermeAgility,项目名称:FrameworkBenchmarks,代码行数:9,代码来源:routerTest.php

示例5: boot

 /**
  * initialize boot function
  */
 static function boot()
 {
     // load config
     \Config::load('extdirect', true);
     // get route
     $route = \Config::get('extdirect.route', 'direct');
     // add routes
     \Router::add($route . '/(:any)', 'extdirect/$1');
     \Router::add($route, 'extdirect/index');
 }
开发者ID:xenophy,项目名称:fuel-ext-direct,代码行数:13,代码来源:extdirect.php

示例6: testBuild

 public function testBuild()
 {
     $router = new Router();
     $router->add("home", new Route("/"));
     $router->add("article", new Route("/show/{title}"));
     $router->add("mvc", new Route("/{controller}/{action}/{param}", array("controller" => "home", "action" => "index", "param" => "")));
     $this->assertSame("/", $router->build("home", array()));
     $this->assertSame("/", $router->build("home", array("something" => "else")));
     $this->assertFalse($router->build("article", array()));
     $this->assertFalse($router->build("article", array("something" => "else")));
     $this->assertFalse($router->build("article", array("title" => "")));
     $this->assertFalse($router->build("article", array("title" => false)));
     $this->assertSame("/show/1", $router->build("article", array("title" => "1")));
     $this->assertSame("/show/thisisatitle", $router->build("article", array("title" => "thisisatitle")));
     $this->assertSame("/", $router->build("mvc", array()));
     $this->assertSame("/", $router->build("mvc", array("foo" => "bar")));
     $this->assertSame("/", $router->build("mvc", array("controller" => "")));
     $this->assertSame("/", $router->build("mvc", array("controller" => false)));
     $this->assertSame("/", $router->build("mvc", array("controller" => "home")));
 }
开发者ID:sugiphp,项目名称:routing,代码行数:20,代码来源:RouterTest.php

示例7: testAddVariableWithRegexRoute

 public function testAddVariableWithRegexRoute()
 {
     $patternBuilder = \Mockery::mock('Rootr\\PatternBuilder');
     $patternBuilder->shouldReceive('build')->andReturn(['/products/(\\d+)', ['id']]);
     $router = new Router($patternBuilder);
     $router->add('GET', '/products/{id}', function ($id) {
         return "/products/{$id}";
     });
     assertThat($router->getStaticRoutes(), emptyArray());
     assertThat($router->getVariableRoutes(), arrayWithSize(1));
     assertThat($router->getVariableRoutes(), hasKeyInArray('/products/(\\d+)'));
 }
开发者ID:eddmann,项目名称:rootr,代码行数:12,代码来源:RouterTest.php

示例8: __construct

 /**
  * Constructor of Sask, initialization of the database class.
  *
  * @param string $baseDir The base directory of the application
  */
 public function __construct($baseDir = __DIR__)
 {
     self::$basedir = $baseDir;
     self::$router = new Router();
     /*
      * 	Connect to the database
      * 	==================
      * 	Set your database access details here.
      */
     if (Configuration::$dbConnection['UseDatabase']) {
         switch (Configuration::$dbConnection['Type']) {
             case 'MySQL':
                 self::$database = new Database(Configuration::$dbConnection['Host'], Configuration::$dbConnection['User'], Configuration::$dbConnection['Password'], Configuration::$dbConnection['DatabaseName'], Configuration::$dbConnection['Port']);
                 break;
             default:
                 break;
         }
     }
     foreach (Configuration::$routes as $key => $value) {
         self::$router->add($key, $value);
     }
 }
开发者ID:chanhong,项目名称:saskphp,代码行数:27,代码来源:Sask.php

示例9: testNamedParams

 public function testNamedParams()
 {
     $id = null;
     $name = null;
     Router::add('|^api/\\w+/(?<name>\\w+)/(?<id>\\d+)$|', function ($r) use(&$id, &$name) {
         $id = (int) $r->param('id');
         $name = $r->param('name');
         return new Result(['id' => $id]);
     });
     $reflection = new \ReflectionMethod('alkemann\\h2l\\Router', 'matchDynamicRoute');
     $reflection->setAccessible(true);
     $route = $reflection->invoke(null, 'api/doesntmatter/tasks/12');
     $this->assertTrue($route instanceof Route);
     $this->assertEquals(['id' => '12', 'name' => 'tasks'], $route->parameters);
 }
开发者ID:alkemann,项目名称:h2l,代码行数:15,代码来源:RouterTest.php

示例10: testBuildWithPathType

 public function testBuildWithPathType()
 {
     $router = new Router();
     $router->add("test", new Host("/", array()));
     $this->assertSame("/", $router->build("test", array(), Host::PATH_ONLY));
     $this->assertSame("/", $router->build("test", array(), Host::PATH_NETWORK));
     $this->assertSame("/", $router->build("test", array(), Host::PATH_FULL));
     // with _host
     $this->assertSame("/", $router->build("test", array("_host" => "example.com"), Host::PATH_ONLY));
     $this->assertSame("//example.com/", $router->build("test", array("_host" => "example.com"), Host::PATH_NETWORK));
     $this->assertSame("//example.com/", $router->build("test", array("_host" => "example.com"), Host::PATH_FULL));
     // with _scheme, no _host
     $this->assertSame("/", $router->build("test", array("_scheme" => "https"), Host::PATH_ONLY));
     $this->assertSame("/", $router->build("test", array("_scheme" => "https"), Host::PATH_NETWORK));
     $this->assertSame("/", $router->build("test", array("_scheme" => "https"), Host::PATH_FULL));
     // with _scheme and _host
     $this->assertSame("/", $router->build("test", array("_host" => "example.com", "_scheme" => "https"), Host::PATH_ONLY));
     $this->assertSame("//example.com/", $router->build("test", array("_host" => "example.com", "_scheme" => "https"), Host::PATH_NETWORK));
     $this->assertSame("https://example.com/", $router->build("test", array("_host" => "example.com", "_scheme" => "https"), Host::PATH_FULL));
 }
开发者ID:sugiphp,项目名称:routing,代码行数:20,代码来源:RouterWithHostTest.php

示例11: Router

<?php

namespace Epic;

session_start();
ini_set('display_errors', 1);
error_reporting(E_ALL);
define('SITE_URL', 'http://epic-blog/lesson%2010/src/public/index.php');
require '../vendor/autoload.php';
Lib\connection(['host' => 'localhost', 'dbname' => 'blog', 'user' => 'root', 'password' => 'vagrant', 'encoding' => 'utf8']);
$router = new Router();
$router->add('home', '\\Epic\\Controllers\\Home', ['\\Epic\\Lib\\is_logged']);
$router->add('profile', '\\Epic\\Controllers\\Profile', ['\\Epic\\Lib\\is_logged']);
$router->add('login', '\\Epic\\Controllers\\Login');
$router->handle();
开发者ID:Puppollo,项目名称:epic,代码行数:15,代码来源:index.php

示例12: error_reporting

<?php

/**
 * BakedCarrot application initialization file 
 *
 * @package BakedCarrot
 * 
 *
 *
 * 
 */
// turning on error reporting
error_reporting(E_ALL | E_STRICT);
// loading main library file
require SYSPATH . 'App.php';
// init
App::create(array('config' => APPPATH . 'config.php', 'mode' => App::MODE_DEVELOPMENT));
// default route
Router::add('default', '/', array('controller' => 'index'));
// run the application
App::run();
开发者ID:nicksp,项目名称:BakedCarrot,代码行数:21,代码来源:appinit.php

示例13: error_reporting

<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);
require 'app/helpers.php';
require 'app/core/DB.php';
require 'app/core/Router.php';
require 'app/core/Model.php';
require 'app/core/Controller.php';
require 'app/models/Candidate.php';
require 'app/controllers/CandidatesController.php';
Router::add('GET', 'customers', 'CustomersController');
Router::add('GET', 'companies', 'CompaniesController');
Router::test();
$controllerName = $_GET['controller'] . 'Controller';
$actionName = $_GET['action'];
$controller = new $controllerName();
$controller->{$actionName}();
开发者ID:eliasfaical,项目名称:tutorials,代码行数:18,代码来源:index.php

示例14:

<?php

Router::add('/', DIR_CTRL . '/index.php');
// Router::add('#^/products(/\d+)?/$#', DIR_CTRL.'/products.php', Router::ROUTE_PCRE);
// Router::add('#^/index.php/products(/\d+)?/$#', DIR_CTRL.'/products.php', Router::ROUTE_PCRE);
Router::add('#^/index.php/products/(name|price|latestprice|addedon|lastupdate)(/\\d+)?/$#', DIR_CTRL . '/products.php', Router::ROUTE_PCRE);
Router::add('#^/index.php/products/$#', DIR_CTRL . '/products.php', Router::ROUTE_PCRE);
Router::add('#^/index.php/prcchanged/#', DIR_CTRL . '/prcchanged.php', Router::ROUTE_PCRE);
Router::add('#^/index.php/product(/\\d+)?/$#', DIR_CTRL . '/product.php', Router::ROUTE_PCRE);
Router::add('#^/index.php/settings/$#', DIR_CTRL . '/settings.php', Router::ROUTE_PCRE);
// Router::add('#^/index.php/ajax/$#', DIR_CTRL.'/ajax.php', Router::ROUTE_PCRE);
// Router::add('#^/regex/(test1|test2|test3)/$#', DIR_CTRL.'/regex.php', Router::ROUTE_PCRE);
/**
 * Routes are added with the static method Router::add($pattern, $replacement)
 * It is processed as preg_replace($pattern, $replace) in the router class, so
 * use any style for $pattern. Though it would be best to use # for pattern 
 * delimiters and ${n} for the replacement string variables. To carry a string
 * from the pattern, just put them in parentheses (). These are run in order,
 * and first one that matches and has a readable controller file is used.
 *
 * PHP's preg_replace: http://php.net/preg_replace/
 *
 * examples:
 *
 * Router::add('#/#', DIR_CTRL.'index.php', Router::ROUTE_PCRE);
 *      sends index page to the index.php contoller
 *
 * Router::add('#/news/(archive|latest)/#', DIR_CTRL.'news.${1}.php', Router::ROUTE_PCRE);
 *      /news/archive/ goes to news.archive.php
 *
 * you can also do this
开发者ID:bained,项目名称:amascrap,代码行数:31,代码来源:config.routes.php

示例15: Router

<?php

$router = new Router();
$router->add('/', 'i want to see the dashboard');
$router->get('/');
开发者ID:lionar,项目名称:routing,代码行数:5,代码来源:api.php


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