Example #1
0
 /**
  * Internal function to register a new route.
  * Will bootstrap the router if necessary.
  *
  * @param string $pattern The regex pattern to match requests against (supports dynamic variables).
  * @param mixed|string $target The target function or path for the route.
  * @param array $requestMethods A list of acceptable request methods, leave empty to disable constraint.
  * @return Route The generated route.
  */
 private function registerRoute($pattern, $target, array $requestMethods = [])
 {
     $this->bootstrapRouter();
     $route = new Route($pattern, $target);
     if (!empty($requestMethods)) {
         $route->setAcceptableMethods($requestMethods);
     }
     $this->router->register($route);
     return $route;
 }
Example #2
0
 public function testRouteActionClosure()
 {
     $request = new Request();
     $request->setRequestUri('/dir/sample.html');
     $request->setMethod(RequestMethod::GET);
     $route = new Route('/dir/sample.html', function (Request $request) {
         // Our closure should receive our use variable ($request)
         // Our closure should also have access to the Context via $this
         echo $request->getMethod();
         return 'test';
     });
     $route->setAcceptableMethods([RequestMethod::GET]);
     $context = new Context();
     $context->registerInstance($request);
     $this->assertTrue($route->matches($request));
     $this->expectOutputString('GET');
     $this->assertEquals('test', $route->action($context));
 }