Compare commits

...

10 Commits

Author SHA1 Message Date
Simon Sessingø c60d7d81c1 Merge pull request #23 from skipperbent/development
[BUGFIX] Optimised getRoute for custom urls.
2015-11-01 07:49:21 +01:00
Simon Sessingø 637b998f02 [TASK] Made RouterBase use singleton HttpRequest class. 2015-11-01 07:48:29 +01:00
Simon Sessingø aca7d3d503 [FEATURE] Added magic method getters and setters, and made request a
singleton applied configuration can be availible from everywhere.
2015-11-01 07:44:13 +01:00
Simon Sessingø 846c9e6584 [BUGFIX] Optimised getRoute for custom urls. 2015-11-01 07:36:13 +01:00
Simon Sessingø 0df469184c Merge pull request #22 from skipperbent/development
[BUGFIX] Fixed Exceptions due to route null value.
2015-10-30 02:28:40 +01:00
Simon Sessingø 649ed28a91 [BUGFIX] Fixed Exceptions due to route null value. 2015-10-30 02:27:44 +01:00
Simon Sessingø 5cb7086e96 Merge pull request #21 from skipperbent/development
Development
2015-10-28 05:04:45 +01:00
Simon Sessingø a2edc1504c [BUGFIX] Fixed regular expression matching after last release. 2015-10-28 05:04:11 +01:00
Simon Sessingø d31cda8e70 Merge pull request #20 from skipperbent/master
Latest master
2015-10-27 17:49:08 +01:00
Simon Sessingø 921f050a31 Update README.md 2015-10-27 17:48:35 +01:00
4 changed files with 36 additions and 5 deletions
+2 -2
View File
@@ -1,5 +1,5 @@
# Simple PHP router
Simple, fast PHP router that is easy to get integrated and in almost any project. Heavily inspired by the Laravel router.
Simple, fast and yet powerful PHP router that is easy to get integrated and in any project. Heavily inspired by the Laravel router.
## Installation
Add the latest version pf Simple PHP Router to your ```composer.json```
@@ -33,7 +33,7 @@ Add the latest version pf Simple PHP Router to your ```composer.json```
- Global Constraints
- Sub-Domain Routing
- Required parameters
- Optional parameters
## Initialising the router
+23
View File
@@ -3,12 +3,27 @@ namespace Pecee\Http;
class Request {
protected static $instance;
protected $data;
protected $uri;
protected $host;
protected $method;
protected $headers;
/**
* Return new instance
* @return static
*/
public static function getInstance() {
if(self::$instance === null) {
self::$instance = new static();
}
return self::$instance;
}
public function __construct() {
$this->data = array();
$this->host = $_SERVER['HTTP_HOST'];
$this->uri = $_SERVER['REQUEST_URI'];
$this->method = (isset($_POST['_method'])) ? strtolower($_POST['_method']) : strtolower($_SERVER['REQUEST_METHOD']);
@@ -103,4 +118,12 @@ class Request {
return (isset($_REQUEST[$name]) ? $_REQUEST[$name] : $defaultValue);
}
public function __set($name, $value = null) {
$this->data[$name] = $value;
}
public function __get($name) {
return isset($this->data[$name]) ? $this->data[$name] : null;
}
}
+8 -2
View File
@@ -27,7 +27,7 @@ class RouterBase {
$this->routes = array();
$this->backstack = array();
$this->controllerUrlMap = array();
$this->request = new Request();
$this->request = Request::getInstance();
$this->baseCsrfVerifier = new BaseCsrfVerifier();
}
@@ -307,7 +307,13 @@ class RouterBase {
ArrayUtil::append($url, $parameters);
}
return '/' . join('/', $url);
$url = '/' . trim(join('/', $url), '/') . '/';
if(is_array($getParams)) {
$url .= '?' . Url::arrayToParams($getParams);
}
return $url;
}
public static function getInstance() {
+3 -1
View File
@@ -49,7 +49,7 @@ class RouterRoute extends RouterEntry {
// Check if url parameter count matches
if(stripos($url, $routeMatch) === 0) {
$matches = (count(explode('/', rtrim($url, '/'))) == count(explode('/', rtrim($route, '/'))));
$matches = true;
if($this->regexMatch) {
$parameters = $this->parseParameters($url, true, $this->regexMatch);
@@ -61,6 +61,8 @@ class RouterRoute extends RouterEntry {
} else {
$matches = (count(explode('/', rtrim($url, '/'))) == count(explode('/', rtrim($route, '/'))));
$url = explode('/', $url);
$route = explode('/', rtrim($route, '/'));