public function testIfRouteVariableDataIsValid() { $route = new Route('name/{name}/{age}', ''); $route->matches('/name/ionut/21'); $this->assertEquals(['name' => 'ionut', 'age' => 21], $route->getData()); $route = (new Route('name/{name?}/{age}', ''))->where('age', '[0-9]+'); $route->matches('/name/21'); $this->assertEquals(['name' => '', 'age' => 21], $route->getData()); // Should consider this }
/** * Get and serve the controller * * @param Route $route * @return mixed * @throws \Exception */ public function dispatch(Route $route) { $callback = $route->getCallback(); $params = array_values($route->getData()); if ($callback instanceof Closure) { return $this->container->resolveClosure($callback, $params); } $class = $this->container->make($callback[0]); return $this->container->resolveMethod($class, $callback[1], $params); }