/**
  * @param RequestInterface $request
  * @param Route $route
  * @return mixed
  */
 public function __invoke(RequestInterface $request, Route $route)
 {
     $args = array_filter($route->getMatches(), function ($name) {
         return strpos($name, '_') !== 0;
     }, \ARRAY_FILTER_USE_KEY);
     $route->getEndPoint()->setArgs($args);
     return $route($request);
 }
 public function testRegexpWithResriction()
 {
     $route = new Route('/controller/{action}/', function () {
     });
     $route->setRestrictions(['action' => '\\w+']);
     $regexp = $this->service->makeRegExp($route);
     self::assertEquals('/controller/(?<action>\\w+)/', $regexp);
 }
Beispiel #3
0
 public function testMiddleware()
 {
     $this->route->pushMiddleware(function (RequestInterface $request, callable $next) {
         $response = $next($request);
         return $response . '2';
     });
     $request = new \Zend\Diactoros\Request('/');
     $route = $this->route;
     self::assertEquals('response2', $route($request));
 }
 public function testMiddleware()
 {
     $route = new Route('/profile/{name}/', function ($name) {
         return $name;
     });
     $route->pushMiddleware(new CallWithMatchParams());
     $coll = new CollectionRoute();
     $coll->add('profile', $route);
     $path = '/profile/alex/';
     $matcher = new Matcher(new RouteService());
     $activeRoute = $matcher->match($coll, $path)->current();
     self::assertEquals('alex', $activeRoute(new Request($path)));
 }