/** * @param Route $route */ public function addRoute(Route $route) { $slimRoute = new \Slim\Route($route->getPath(), [$this, 'dummyCallable']); $slimRoute->setName($route->getName()); $allowedMethods = $route->getAllowedMethods(); $slimRoute->via($allowedMethods === Route::HTTP_METHOD_ANY ? 'ANY' : $allowedMethods); // Process options $options = $route->getOptions(); if (isset($options['conditions']) && is_array($options['conditions'])) { $slimRoute->setConditions($options['conditions']); } // The middleware is merged with the rest of the route params $params = ['middleware' => $route->getMiddleware()]; if (isset($options['defaults']) && is_array($options['defaults'])) { $params = array_merge($options['defaults'], $params); } $slimRoute->setParams($params); $this->router->map($slimRoute); }
public function testSetParams() { $route = new \Slim\Route('/hello/:first/:last', function () { }); $route->matches('/hello/mr/anderson'); // <-- Parses params from argument $route->setParams(array('first' => 'agent', 'last' => 'smith')); $this->assertAttributeEquals(array('first' => 'agent', 'last' => 'smith'), 'params', $route); }
/** * Test sets all params */ public function testSetRouteParams() { // Prepare route $requestUri = '/hello/mr/anderson'; $route = new \Slim\Route('/hello/:first/:last', 'fooCallable'); // Parse route params $this->assertTrue($route->matches($requestUri)); // Get params $params = $route->getParams(); $this->assertEquals(2, count($params)); $this->assertEquals('mr', $params['first']); $this->assertEquals('anderson', $params['last']); // Replace params $route->setParams(array('first' => 'john', 'last' => 'smith')); // Get new params $params = $route->getParams(); $this->assertEquals(2, count($params)); $this->assertEquals('john', $params['first']); $this->assertEquals('smith', $params['last']); }