예제 #1
0
 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);
 }