- This make the RouterCollection class more simple and clean.
- More fast, because SplObjectStorage is implemented in C
use PHPRouter\Route;
$collection = new RouteCollection();
-$collection->add('users', new Route('/users/', array(
+$collection->attach(new Route('/users/', array(
'_controller' => 'someController::users_create',
'methods' => 'GET'
)));
-$collection->add('index', new Route('/', array(
+$collection->attach(new Route('/', array(
'_controller' => 'someController::indexAction',
'methods' => 'GET'
)));
If you like PHP Router you might also like [AltoRouter](//github.com/dannyvankooten/AltoRouter).
## License
-MIT Licensed, http://www.opensource.org/licenses/MIT
\ No newline at end of file
+MIT Licensed, http://www.opensource.org/licenses/MIT
<?php
+date_default_timezone_set('America/Sao_Paulo');
+
//require __DIR__.'/vendor/autoload.php';
require 'src\PHPRouter\RouteCollection.php';
require 'src\PHPRouter\Router.php';
use PHPRouter\Route;
$collection = new RouteCollection();
-$collection->add('users', new Route('/users/', array(
+$collection->attach(new Route('/users/', array(
'_controller' => 'someController::users_create',
'methods' => 'GET'
)));
-$collection->add('index', new Route('/', array(
+$collection->attach(new Route('/', array(
'_controller' => 'someController::indexAction',
'methods' => 'GET'
)));
<p><a href="<?php echo $router->generate('contact'); ?>"><?php echo $router->generate('contact'); ?></a></p>
<p><form action="" method="POST"><input type="submit" value="Post request to current URL" /></form></p>
<p><form action="<?php echo $router->generate('users_create'); ?>" method="POST"><input type="submit" value="POST request to <?php echo $router->generate('users_create'); ?>" /></form></p>
-<p><a href="<?php echo $router->generate('users_list'); ?>">GET request to <?php echo $router->generate('users_list'); ?></p>
\ No newline at end of file
+<p><a href="<?php echo $router->generate('users_list'); ?>">GET request to <?php echo $router->generate('users_list'); ?></p>
<?php\r
namespace PHPRouter;\r
\r
-use Iterator;\r
-\r
-class RouteCollection implements Iterator\r
+class RouteCollection extends \SplObjectStorage\r
{\r
- private $_routes = array();\r
-\r
- public function add($uri, Route $action)\r
- {\r
- $this->_routes[$uri] = $action;\r
- }\r
-\r
- public function remove($uri)\r
- {\r
- unset($this->_routes[$uri]);\r
- }\r
-\r
- public function get($uri)\r
- {\r
- return $this->_routes[$uri];\r
- }\r
-\r
- public function current()\r
- {\r
- return current($this->_routes);\r
- }\r
-\r
- public function next()\r
- {\r
- next($this->_routes);\r
- }\r
-\r
+ /**\r
+ * Fetch all routers stored on this collection of router\r
+ * and return it.\r
+ *\r
+ * @return array\r
+ */ \r
public function all()\r
{\r
- return $this->_routes;\r
- }\r
-\r
- public function key()\r
- {\r
- return key($this->_routes);\r
- }\r
-\r
- public function valid()\r
- {\r
- if ($this->_routes) {\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- public function rewind()\r
- {\r
- reset($this->_routes);\r
+ $_tmp = array();\r
+ foreach($this as $objectValue)\r
+ {\r
+ $_tmp[] = $objectValue;\r
+ }\r
+ return $_tmp;\r
}\r
-}
\ No newline at end of file
+}\r