mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-07-11 21:22:17 +00:00
Development
- Isolated Http classes from router. - Removed getInstance from Request object - current router request should now be obtained through SimpleRouter::request(). - Fixed broken test cases. - Added test for regular expression match. - Updated documentation to reflect changes. - Added more helper examples to documentation. - Added helpers to demo-project. - Optimisations.
This commit is contained in:
@@ -208,15 +208,12 @@ class Router extends SimpleRouter {
|
|||||||
**This is a basic example of a helper function for generating urls.**
|
**This is a basic example of a helper function for generating urls.**
|
||||||
|
|
||||||
```php
|
```php
|
||||||
use Pecee\SimpleRouter\RouterBase;
|
use Pecee\SimpleRouter\SimpleRouter;
|
||||||
|
|
||||||
function url($controller, $parameters = null, $getParams = null) {
|
function url($controller, $parameters = null, $getParams = null) {
|
||||||
RouterBase::getInstance()->getRoute($controller, $parameters, $getParams);
|
SimpleRouter::getRoute($controller, $parameters, $getParams);
|
||||||
}
|
}
|
||||||
```
|
|
||||||
|
|
||||||
**This is a basic example for getting the current csrf token**
|
|
||||||
|
|
||||||
```php
|
|
||||||
/**
|
/**
|
||||||
* Get current csrf-token
|
* Get current csrf-token
|
||||||
* @return null|string
|
* @return null|string
|
||||||
@@ -225,6 +222,22 @@ function csrf_token() {
|
|||||||
$token = new \Pecee\CsrfToken();
|
$token = new \Pecee\CsrfToken();
|
||||||
return $token->getToken();
|
return $token->getToken();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get request object
|
||||||
|
* @return \Pecee\Http\Request
|
||||||
|
*/
|
||||||
|
function request() {
|
||||||
|
return SimpleRouter::request();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get response object
|
||||||
|
* @return \Pecee\Http\Response
|
||||||
|
*/
|
||||||
|
function response() {
|
||||||
|
return SimpleRouter::response();
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Getting urls
|
## Getting urls
|
||||||
@@ -327,12 +340,14 @@ SimpleRouter::get('/article/view/{id}', 'ControllerArticle@view');
|
|||||||
## Easily overwrite route about to be loaded
|
## Easily overwrite route about to be loaded
|
||||||
Sometimes it can be useful to manipulate the route that's about to be loaded, for instance if a user is not authenticated or if an error occurred within your Middleware that requires
|
Sometimes it can be useful to manipulate the route that's about to be loaded, for instance if a user is not authenticated or if an error occurred within your Middleware that requires
|
||||||
some other route to be initialised. Simple PHP Router allows you to easily change the route about to be executed. All information about the current route is stored in
|
some other route to be initialised. Simple PHP Router allows you to easily change the route about to be executed. All information about the current route is stored in
|
||||||
the ```\Pecee\SimpleRouter\Http\Request``` object.
|
the ```\Pecee\SimpleRouter\Http\Request``` object. All information about the current route is as a ```\Pecee\SimpleRouter\Http\Request``` object which can always be obtained on
|
||||||
|
the `RouterBase` instance. For easy access you can use the shortcut method `\Pecee\SimpleRouter\SimpleRouter::request()`.
|
||||||
|
|
||||||
**Note:** Please note that it's only possible to change the route BEFORE any route has initially been loaded, so doing this in your custom ExceptionHandler or Middleware is highly recommended.
|
**Note:** Please note that it's only possible to change the route BEFORE any route has initially been loaded, so doing this in your custom ExceptionHandler or Middleware is highly recommended.
|
||||||
|
|
||||||
```php
|
```php
|
||||||
$route = Request::getInstance()->getLoadedRoute();
|
use Pecee\SimpleRouter;
|
||||||
|
$route = SimpleRouter::request()->getLoadedRoute();
|
||||||
|
|
||||||
$route->setCallback('Example\MyCustomClass@hello');
|
$route->setCallback('Example\MyCustomClass@hello');
|
||||||
|
|
||||||
@@ -348,28 +363,28 @@ We've added the `Input` class to easy access parameters from your Controller-cla
|
|||||||
|
|
||||||
**Return single parameter value (matches both GET, POST, FILE):**
|
**Return single parameter value (matches both GET, POST, FILE):**
|
||||||
```php
|
```php
|
||||||
$value = Request::getInstance()->getInput()->get('name');
|
$value = SimpleRouter::request()->getInput()->get('name');
|
||||||
```
|
```
|
||||||
|
|
||||||
**Return parameter object (matches both GET, POST, FILE):**
|
**Return parameter object (matches both GET, POST, FILE):**
|
||||||
```php
|
```php
|
||||||
$object = Request::getInstance()->getInput()->getObject('name');
|
$object = SimpleRouter::request()->getInput()->getObject('name');
|
||||||
```
|
```
|
||||||
|
|
||||||
**Return specific GET parameter (where name is the name of your parameter):**
|
**Return specific GET parameter (where name is the name of your parameter):**
|
||||||
```php
|
```php
|
||||||
$object = Request::getInstance()->getInput()->get->name;
|
$object = SimpleRouter::request()->getInput()->get->name;
|
||||||
$object = Request::getInstance()->getInput()->post->name;
|
$object = SimpleRouter::request()->getInput()->post->name;
|
||||||
$object = Request::getInstance()->getInput()->file->name;
|
$object = SimpleRouter::request()->getInput()->file->name;
|
||||||
```
|
```
|
||||||
|
|
||||||
**Return all parameters:**
|
**Return all parameters:**
|
||||||
```php
|
```php
|
||||||
// Get all
|
// Get all
|
||||||
$objects = Request::getInstance()->getInput()->all();
|
$objects = SimpleRouter::request()->getInput()->all();
|
||||||
|
|
||||||
// Only match certain keys
|
// Only match certain keys
|
||||||
$objects = Request::getInstance()->getInput()->all([
|
$objects = SimpleRouter::request()->getInput()->all([
|
||||||
'company_name',
|
'company_name',
|
||||||
'user_id'
|
'user_id'
|
||||||
]);
|
]);
|
||||||
@@ -400,7 +415,7 @@ Example:
|
|||||||
* @return \Pecee\Http\Input\Input
|
* @return \Pecee\Http\Input\Input
|
||||||
*/
|
*/
|
||||||
function input() {
|
function input() {
|
||||||
return \Pecee\Http\Request::getInstance()->getInput();
|
return SimpleRouter::request()->getInput();
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Demo\Controllers;
|
namespace Demo\Controllers;
|
||||||
|
|
||||||
use Pecee\Http\Request;
|
use Pecee\SimpleRouter\SimpleRouter;
|
||||||
|
|
||||||
class ApiController {
|
class ApiController {
|
||||||
|
|
||||||
@@ -9,7 +9,7 @@ class ApiController {
|
|||||||
|
|
||||||
// The variable authenticated is set to true in the ApiVerification middleware class.
|
// The variable authenticated is set to true in the ApiVerification middleware class.
|
||||||
|
|
||||||
$request = Request::getInstance();
|
$request = SimpleRouter::request();
|
||||||
|
|
||||||
header('content-type: application/json');
|
header('content-type: application/json');
|
||||||
|
|
||||||
|
|||||||
@@ -13,11 +13,13 @@ class Router extends SimpleRouter {
|
|||||||
|
|
||||||
public static function start($defaultNamespace = null) {
|
public static function start($defaultNamespace = null) {
|
||||||
|
|
||||||
// change this to whatever makes sense in your project
|
// Load our helpers
|
||||||
|
require_once 'helpers.php';
|
||||||
|
|
||||||
|
// Load our custom routes
|
||||||
require_once 'routes.php';
|
require_once 'routes.php';
|
||||||
|
|
||||||
// Do initial stuff
|
// Do initial stuff
|
||||||
|
|
||||||
parent::start('\\Demo\\Controllers');
|
parent::start('\\Demo\\Controllers');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
use \Pecee\SimpleRouter\SimpleRouter;
|
||||||
|
|
||||||
|
function url($controller, $parameters = null, $getParams = null) {
|
||||||
|
SimpleRouter::getRoute($controller, $parameters, $getParams);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get current csrf-token
|
||||||
|
* @return null|string
|
||||||
|
*/
|
||||||
|
function csrf_token() {
|
||||||
|
$token = new \Pecee\CsrfToken();
|
||||||
|
return $token->getToken();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get request object
|
||||||
|
* @return \Pecee\Http\Request
|
||||||
|
*/
|
||||||
|
function request() {
|
||||||
|
return SimpleRouter::request();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get response object
|
||||||
|
* @return \Pecee\Http\Response
|
||||||
|
*/
|
||||||
|
function response() {
|
||||||
|
return SimpleRouter::response();
|
||||||
|
}
|
||||||
@@ -20,7 +20,13 @@ class Input {
|
|||||||
*/
|
*/
|
||||||
public $file;
|
public $file;
|
||||||
|
|
||||||
public function __construct() {
|
/**
|
||||||
|
* @var Request
|
||||||
|
*/
|
||||||
|
protected $request;
|
||||||
|
|
||||||
|
public function __construct(Request &$request) {
|
||||||
|
$this->request = $request;
|
||||||
$this->setGet();
|
$this->setGet();
|
||||||
$this->setPost();
|
$this->setPost();
|
||||||
$this->setFile();
|
$this->setFile();
|
||||||
@@ -58,7 +64,7 @@ class Input {
|
|||||||
return ($key !== null) ? $element[$key] : $element;
|
return ($key !== null) ? $element[$key] : $element;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Request::getInstance()->getMethod() !== 'get') {
|
if($this->request->getMethod() !== 'get') {
|
||||||
|
|
||||||
$element = $this->post->findFirst($index);
|
$element = $this->post->findFirst($index);
|
||||||
|
|
||||||
|
|||||||
@@ -5,28 +5,15 @@ use Pecee\Http\Input\Input;
|
|||||||
|
|
||||||
class Request {
|
class Request {
|
||||||
|
|
||||||
protected static $instance;
|
|
||||||
|
|
||||||
protected $data;
|
protected $data;
|
||||||
|
|
||||||
/**
|
|
||||||
* Return new instance
|
|
||||||
* @return static
|
|
||||||
*/
|
|
||||||
public static function getInstance() {
|
|
||||||
if(self::$instance === null) {
|
|
||||||
self::$instance = new static();
|
|
||||||
}
|
|
||||||
return self::$instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
$this->data = array();
|
$this->data = array();
|
||||||
$this->host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : array();
|
$this->host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : array();
|
||||||
$this->uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : array();
|
$this->uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : array();
|
||||||
$this->method = (isset($_POST['_method'])) ? strtolower($_POST['_method']) : (isset($_SERVER['REQUEST_METHOD']) ? strtolower($_SERVER['REQUEST_METHOD']) : array());
|
$this->method = (isset($_POST['_method'])) ? strtolower($_POST['_method']) : (isset($_SERVER['REQUEST_METHOD']) ? strtolower($_SERVER['REQUEST_METHOD']) : array());
|
||||||
$this->headers = $this->getAllHeaders();
|
$this->headers = $this->getAllHeaders();
|
||||||
$this->input = new Input();
|
$this->input = new Input($this);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getAllHeaders() {
|
protected function getAllHeaders() {
|
||||||
|
|||||||
@@ -4,6 +4,12 @@ namespace Pecee\Http;
|
|||||||
|
|
||||||
class Response {
|
class Response {
|
||||||
|
|
||||||
|
protected $request;
|
||||||
|
|
||||||
|
public function __construct(Request &$request) {
|
||||||
|
$this->request = $request;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the http status code
|
* Set the http status code
|
||||||
*
|
*
|
||||||
@@ -31,7 +37,7 @@ class Response {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function refresh() {
|
public function refresh() {
|
||||||
$this->redirect(Request::getInstance()->getUri());
|
$this->redirect($this->request->getUri());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -5,12 +5,14 @@ use Pecee\Exception\RouterException;
|
|||||||
use Pecee\Handler\IExceptionHandler;
|
use Pecee\Handler\IExceptionHandler;
|
||||||
use Pecee\Http\Middleware\BaseCsrfVerifier;
|
use Pecee\Http\Middleware\BaseCsrfVerifier;
|
||||||
use Pecee\Http\Request;
|
use Pecee\Http\Request;
|
||||||
|
use Pecee\Http\Response;
|
||||||
|
|
||||||
class RouterBase {
|
class RouterBase {
|
||||||
|
|
||||||
protected static $instance;
|
protected static $instance;
|
||||||
|
|
||||||
protected $request;
|
protected $request;
|
||||||
|
protected $response;
|
||||||
protected $currentRoute;
|
protected $currentRoute;
|
||||||
protected $routes;
|
protected $routes;
|
||||||
protected $processedRoutes;
|
protected $processedRoutes;
|
||||||
@@ -21,10 +23,13 @@ class RouterBase {
|
|||||||
protected $baseCsrfVerifier;
|
protected $baseCsrfVerifier;
|
||||||
protected $exceptionHandlers;
|
protected $exceptionHandlers;
|
||||||
|
|
||||||
// TODO: clean up - cut some of the methods down to smaller pieces
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
$this->request = Request::getInstance();
|
$this->reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function reset() {
|
||||||
|
$this->request = new Request();
|
||||||
|
$this->response = new Response($this->request);
|
||||||
$this->routes = array();
|
$this->routes = array();
|
||||||
$this->backStack = array();
|
$this->backStack = array();
|
||||||
$this->controllerUrlMap = array();
|
$this->controllerUrlMap = array();
|
||||||
@@ -289,6 +294,14 @@ class RouterBase {
|
|||||||
return $this->request;
|
return $this->request;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get response
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function getResponse() {
|
||||||
|
return $this->response;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get base csrf verifier class
|
* Get base csrf verifier class
|
||||||
* @return BaseCsrfVerifier
|
* @return BaseCsrfVerifier
|
||||||
@@ -341,10 +354,10 @@ class RouterBase {
|
|||||||
$url = $domain . '/' . trim($route->getUrl(), '/');
|
$url = $domain . '/' . trim($route->getUrl(), '/');
|
||||||
|
|
||||||
if(($route instanceof RouterController || $route instanceof RouterResource) && $method !== null) {
|
if(($route instanceof RouterController || $route instanceof RouterResource) && $method !== null) {
|
||||||
|
if($method !== null) {
|
||||||
$url .= $method;
|
$url .= $method;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($route instanceof RouterController || $route instanceof RouterResource) {
|
|
||||||
if(count($parameters)) {
|
if(count($parameters)) {
|
||||||
$url .= join('/', $parameters);
|
$url .= join('/', $parameters);
|
||||||
}
|
}
|
||||||
@@ -419,12 +432,15 @@ class RouterBase {
|
|||||||
$route = $this->controllerUrlMap[$i];
|
$route = $this->controllerUrlMap[$i];
|
||||||
|
|
||||||
// Check an alias exist, if the matches - use it
|
// Check an alias exist, if the matches - use it
|
||||||
if($route instanceof RouterRoute && $route->hasAlias($controller)) {
|
if($route instanceof RouterRoute) {
|
||||||
|
|
||||||
|
if($route->hasAlias($controller)) {
|
||||||
return $this->processUrl($route, $route->getMethod(), $parameters, $getParams);
|
return $this->processUrl($route, $route->getMethod(), $parameters, $getParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($route instanceof RouterRoute && !is_callable($route->getCallback()) && stripos($route->getCallback(), '@') !== false) {
|
if(!is_callable($route->getCallback()) && stripos($route->getCallback(), '@') !== false) {
|
||||||
$c = $route->getCallback();
|
$c = $route->getCallback();
|
||||||
|
}
|
||||||
} else if($route instanceof RouterController || $route instanceof RouterResource) {
|
} else if($route instanceof RouterController || $route instanceof RouterResource) {
|
||||||
$c = $route->getController();
|
$c = $route->getController();
|
||||||
}
|
}
|
||||||
@@ -476,6 +492,10 @@ class RouterBase {
|
|||||||
return $url;
|
return $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get current router instance
|
||||||
|
* @return static
|
||||||
|
*/
|
||||||
public static function getInstance() {
|
public static function getInstance() {
|
||||||
if(static::$instance === null) {
|
if(static::$instance === null) {
|
||||||
static::$instance = new static();
|
static::$instance = new static();
|
||||||
|
|||||||
@@ -13,6 +13,10 @@ use Pecee\Http\Middleware\BaseCsrfVerifier;
|
|||||||
|
|
||||||
class SimpleRouter {
|
class SimpleRouter {
|
||||||
|
|
||||||
|
public function __construct() {
|
||||||
|
die('test');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Start/route request
|
* Start/route request
|
||||||
* @param null $defaultNamespace
|
* @param null $defaultNamespace
|
||||||
@@ -128,4 +132,12 @@ class SimpleRouter {
|
|||||||
return RouterBase::getInstance()->getRoute($controller, $parameters, $getParams);
|
return RouterBase::getInstance()->getRoute($controller, $parameters, $getParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function request() {
|
||||||
|
return RouterBase::getInstance()->getRequest();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function response() {
|
||||||
|
return RouterBase::getInstance()->getResponse();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+3
-2
@@ -28,8 +28,9 @@ class GroupTest extends PHPUnit_Framework_TestCase {
|
|||||||
|
|
||||||
public function testNestedGroup() {
|
public function testNestedGroup() {
|
||||||
|
|
||||||
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/api/v1/test');
|
\Pecee\SimpleRouter\RouterBase::getInstance()->reset();
|
||||||
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setMethod('get');
|
\Pecee\SimpleRouter\SimpleRouter::request()->setUri('/api/v1/test');
|
||||||
|
\Pecee\SimpleRouter\SimpleRouter::request()->setMethod('get');
|
||||||
|
|
||||||
\Pecee\SimpleRouter\SimpleRouter::group(['prefix' => '/api'], function() {
|
\Pecee\SimpleRouter\SimpleRouter::group(['prefix' => '/api'], function() {
|
||||||
\Pecee\SimpleRouter\SimpleRouter::group(['prefix' => '/v1'], function() {
|
\Pecee\SimpleRouter\SimpleRouter::group(['prefix' => '/v1'], function() {
|
||||||
|
|||||||
@@ -8,8 +8,9 @@ class MiddlewareTest extends PHPUnit_Framework_TestCase {
|
|||||||
|
|
||||||
public function testMiddlewareFound() {
|
public function testMiddlewareFound() {
|
||||||
|
|
||||||
\Pecee\Http\Request::getInstance()->setMethod('get');
|
\Pecee\SimpleRouter\RouterBase::getInstance()->reset();
|
||||||
\Pecee\Http\Request::getInstance()->setUri('/my/test/url');
|
\Pecee\SimpleRouter\SimpleRouter::request()->setMethod('get');
|
||||||
|
\Pecee\SimpleRouter\SimpleRouter::request()->setUri('/my/test/url');
|
||||||
|
|
||||||
\Pecee\SimpleRouter\SimpleRouter::group(['exceptionHandler' => 'ExceptionHandler'], function() {
|
\Pecee\SimpleRouter\SimpleRouter::group(['exceptionHandler' => 'ExceptionHandler'], function() {
|
||||||
\Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start', ['middleware' => 'DummyMiddleware']);
|
\Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start', ['middleware' => 'DummyMiddleware']);
|
||||||
|
|||||||
+29
-22
@@ -8,9 +8,9 @@ class RouterRouteTest extends PHPUnit_Framework_TestCase {
|
|||||||
|
|
||||||
|
|
||||||
public function testNotFound() {
|
public function testNotFound() {
|
||||||
|
\Pecee\SimpleRouter\RouterBase::getInstance()->reset();
|
||||||
\Pecee\Http\Request::getInstance()->setMethod('get');
|
\Pecee\SimpleRouter\SimpleRouter::request()->setMethod('get');
|
||||||
\Pecee\Http\Request::getInstance()->setUri('/test-param1-param2');
|
\Pecee\SimpleRouter\SimpleRouter::request()->setUri('/test-param1-param2');
|
||||||
|
|
||||||
\Pecee\SimpleRouter\SimpleRouter::group(['exceptionHandler' => 'ExceptionHandler'], function() {
|
\Pecee\SimpleRouter\SimpleRouter::group(['exceptionHandler' => 'ExceptionHandler'], function() {
|
||||||
\Pecee\SimpleRouter\SimpleRouter::get('/non-existing-path', 'DummyController@start');
|
\Pecee\SimpleRouter\SimpleRouter::get('/non-existing-path', 'DummyController@start');
|
||||||
@@ -29,33 +29,36 @@ class RouterRouteTest extends PHPUnit_Framework_TestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testGet() {
|
public function testGet() {
|
||||||
|
\Pecee\SimpleRouter\RouterBase::getInstance()->reset();
|
||||||
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url');
|
\Pecee\SimpleRouter\SimpleRouter::request()->setUri('/my/test/url');
|
||||||
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setMethod('get');
|
\Pecee\SimpleRouter\SimpleRouter::request()->setMethod('get');
|
||||||
|
|
||||||
\Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start');
|
\Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start');
|
||||||
\Pecee\SimpleRouter\SimpleRouter::start();
|
\Pecee\SimpleRouter\SimpleRouter::start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testPost() {
|
public function testPost() {
|
||||||
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url');
|
\Pecee\SimpleRouter\RouterBase::getInstance()->reset();
|
||||||
\Pecee\Http\Request::getInstance()->setMethod('post');
|
\Pecee\SimpleRouter\SimpleRouter::request()->setUri('/my/test/url');
|
||||||
|
\Pecee\SimpleRouter\SimpleRouter::request()->setMethod('post');
|
||||||
|
|
||||||
\Pecee\SimpleRouter\SimpleRouter::post('/my/test/url', 'DummyController@start');
|
\Pecee\SimpleRouter\SimpleRouter::post('/my/test/url', 'DummyController@start');
|
||||||
\Pecee\SimpleRouter\SimpleRouter::start();
|
\Pecee\SimpleRouter\SimpleRouter::start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testPut() {
|
public function testPut() {
|
||||||
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url');
|
\Pecee\SimpleRouter\RouterBase::getInstance()->reset();
|
||||||
\Pecee\Http\Request::getInstance()->setMethod('put');
|
\Pecee\SimpleRouter\SimpleRouter::request()->setUri('/my/test/url');
|
||||||
|
\Pecee\SimpleRouter\SimpleRouter::request()->setMethod('put');
|
||||||
|
|
||||||
\Pecee\SimpleRouter\SimpleRouter::put('/my/test/url', 'DummyController@start');
|
\Pecee\SimpleRouter\SimpleRouter::put('/my/test/url', 'DummyController@start');
|
||||||
\Pecee\SimpleRouter\SimpleRouter::start();
|
\Pecee\SimpleRouter\SimpleRouter::start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testDelete() {
|
public function testDelete() {
|
||||||
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url');
|
\Pecee\SimpleRouter\RouterBase::getInstance()->reset();
|
||||||
\Pecee\Http\Request::getInstance()->setMethod('delete');
|
\Pecee\SimpleRouter\SimpleRouter::request()->setUri('/my/test/url');
|
||||||
|
\Pecee\SimpleRouter\SimpleRouter::request()->setMethod('delete');
|
||||||
|
|
||||||
\Pecee\SimpleRouter\SimpleRouter::delete('/my/test/url', 'DummyController@start');
|
\Pecee\SimpleRouter\SimpleRouter::delete('/my/test/url', 'DummyController@start');
|
||||||
\Pecee\SimpleRouter\SimpleRouter::start();
|
\Pecee\SimpleRouter\SimpleRouter::start();
|
||||||
@@ -63,8 +66,9 @@ class RouterRouteTest extends PHPUnit_Framework_TestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testMethodNotAllowed() {
|
public function testMethodNotAllowed() {
|
||||||
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url');
|
\Pecee\SimpleRouter\RouterBase::getInstance()->reset();
|
||||||
\Pecee\Http\Request::getInstance()->setMethod('post');
|
\Pecee\SimpleRouter\SimpleRouter::request()->setUri('/my/test/url');
|
||||||
|
\Pecee\SimpleRouter\SimpleRouter::request()->setMethod('post');
|
||||||
|
|
||||||
\Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start');
|
\Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start');
|
||||||
|
|
||||||
@@ -78,8 +82,9 @@ class RouterRouteTest extends PHPUnit_Framework_TestCase {
|
|||||||
|
|
||||||
public function testSimpleParam() {
|
public function testSimpleParam() {
|
||||||
|
|
||||||
\Pecee\Http\Request::getInstance()->setMethod('get');
|
\Pecee\SimpleRouter\RouterBase::getInstance()->reset();
|
||||||
\Pecee\Http\Request::getInstance()->setUri('/test-param1');
|
\Pecee\SimpleRouter\SimpleRouter::request()->setMethod('get');
|
||||||
|
\Pecee\SimpleRouter\SimpleRouter::request()->setUri('/test-param1');
|
||||||
|
|
||||||
\Pecee\SimpleRouter\SimpleRouter::get('/test-{param1}', 'DummyController@param');
|
\Pecee\SimpleRouter\SimpleRouter::get('/test-{param1}', 'DummyController@param');
|
||||||
\Pecee\SimpleRouter\SimpleRouter::start();
|
\Pecee\SimpleRouter\SimpleRouter::start();
|
||||||
@@ -88,20 +93,22 @@ class RouterRouteTest extends PHPUnit_Framework_TestCase {
|
|||||||
|
|
||||||
public function testMultiParam() {
|
public function testMultiParam() {
|
||||||
|
|
||||||
\Pecee\Http\Request::getInstance()->setMethod('get');
|
\Pecee\SimpleRouter\RouterBase::getInstance()->reset();
|
||||||
\Pecee\Http\Request::getInstance()->setUri('/test-param1-param2');
|
\Pecee\SimpleRouter\SimpleRouter::request()->setMethod('get');
|
||||||
|
\Pecee\SimpleRouter\SimpleRouter::request()->setUri('/test-param1-param2');
|
||||||
|
|
||||||
\Pecee\SimpleRouter\SimpleRouter::get('/test-{param1}-{param2}', 'DummyController@param');
|
\Pecee\SimpleRouter\SimpleRouter::get('/test-{param1}-{param2}', 'DummyController@param');
|
||||||
\Pecee\SimpleRouter\SimpleRouter::start();
|
\Pecee\SimpleRouter\SimpleRouter::start();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testPathParam() {
|
public function testPathParamRegex() {
|
||||||
|
|
||||||
\Pecee\Http\Request::getInstance()->setMethod('get');
|
\Pecee\SimpleRouter\RouterBase::getInstance()->reset();
|
||||||
\Pecee\Http\Request::getInstance()->setUri('/test/path/param1');
|
\Pecee\SimpleRouter\SimpleRouter::request()->setMethod('get');
|
||||||
|
\Pecee\SimpleRouter\SimpleRouter::request()->setUri('/test/path/123123');
|
||||||
|
|
||||||
\Pecee\SimpleRouter\SimpleRouter::get('/test/path/{param}', 'DummyController@param');
|
\Pecee\SimpleRouter\SimpleRouter::get('/test/path/{myParam}', 'DummyController@param', ['where' => ['myParam' => '([0-9]+)']]);
|
||||||
\Pecee\SimpleRouter\SimpleRouter::start();
|
\Pecee\SimpleRouter\SimpleRouter::start();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user