Compare commits

...

7 Commits

Author SHA1 Message Date
Simon Sessingø 0cc0a59fd5 Merge pull request #105 from skipperbent/development
Development
2016-06-04 15:13:47 +02:00
Simon Sessingø 6780b24e59 Development
- Optimized the way parameters are parsed as a result, simple-router now supports routes like `/{param1}-{param2}.json`.
- Replaced reg-ex for parameter-matching with `\w` which means that default parameter matching on routes now include `_` (underscore) per default.
- Simplified `MiddlewareTest` class.
2016-06-04 15:12:04 +02:00
Simon Sessingø b540c01650 Update README.md 2016-06-03 00:02:45 +02:00
Simon Sessingø 498fd6b07d Merge pull request #103 from skipperbent/development
Added setValue method to InputItem class.
2016-05-04 13:41:36 +02:00
Simon Sessingø eb8832beec Added setValue method to InputItem class. 2016-05-04 13:35:23 +02:00
Simon Sessingø 96ab22a4f8 Merge pull request #102 from skipperbent/development
Added exist method to Input class.
2016-05-03 07:21:16 +02:00
Simon Sessingø eeafcb7862 Added exist method to Input class. 2016-05-03 07:20:52 +02:00
6 changed files with 30 additions and 8 deletions
+1
View File
@@ -481,6 +481,7 @@ This is some sites that uses the simple-router project in production.
- [holla.dk](http://www.holla.dk)
- [ninjaimg.com](http://ninjaimg.com)
- [bookandbegin.com](https://bookandbegin.com)
## Documentation
While I work on a better documentation, please refer to the Laravel 5 routing documentation here:
+4
View File
@@ -97,6 +97,10 @@ class Input {
return $default;
}
public function exists($index) {
return ($this->getObject($index) !== null);
}
public function setGet() {
$this->get = new InputCollection();
+10
View File
@@ -46,6 +46,16 @@ class InputItem {
return $this;
}
/**
* Set input value
* @param string $value
* @return static $this
*/
public function setValue($value) {
$this->value = $value;
return $this;
}
public function __toString() {
return (string)$this->getValue();
}
+8
View File
@@ -131,6 +131,14 @@ class RouterBase {
// Loop through each route-request
$this->processRoutes($this->routes);
// Make sure routes with longer urls are rendered first
usort($this->controllerUrlMap, function($a, $b) {
if(strlen($a->getUrl()) < strlen($b->getUrl())) {
return 1;
}
return -1;
});
$routeNotAllowed = false;
$max = count($this->controllerUrlMap);
+3 -3
View File
@@ -249,7 +249,7 @@ abstract class RouterEntry {
return new $name();
}
protected function parseParameters($route, $url, $parameterRegex = '[a-z0-9]+') {
protected function parseParameters($route, $url, $parameterRegex = '[\w]+') {
$parameterNames = array();
$regex = '';
$lastCharacter = '';
@@ -288,7 +288,7 @@ abstract class RouterEntry {
$regex .= '(?:\\/?(?P<'.$parameter.'>[^\/]+)?\\/?)';
$required = false;
} else {
$regex .= '\\/(?P<' . $parameter . '>'. $parameterRegex .')\\/';
$regex .= '.*?(?P<' . $parameter . '>'. $parameterRegex .').*?';
}
$parameterNames[] = array('name' => $parameter, 'required' => $required);
$parameter = '';
@@ -307,7 +307,7 @@ abstract class RouterEntry {
$parameterValues = array();
if(preg_match('/^'.$regex.'$/is', $url, $parameterValues)) {
if(preg_match('/^'.$regex.'.?$/is', $url, $parameterValues)) {
$parameters = array();
$max = count($parameterNames);
+4 -5
View File
@@ -20,17 +20,16 @@ class MiddlewareTest extends PHPUnit_Framework_TestCase {
\Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start', ['middleware' => 'DummyMiddleware']);
$found = false;
try {
\Pecee\SimpleRouter\SimpleRouter::start();
}catch(Exception $e) {
$this->assertTrue(($e instanceof MiddlewareLoadedException));
return;
$found = ($e instanceof MiddlewareLoadedException);
}
throw new Exception('Middleware not loaded');
$this->assertTrue($found);
}
}