/** * @param $job * @param $collection * @return callable */ private function getClosure($job, RouteCollection $collection) { $collection->addRoutes(['/' => ['use' => $job['controller'], 'ajax' => isset($job['ajax']) && $job['ajax'] ? true : false]], ['path' => ROOT . '/Views', 'namespace' => '']); $router = new Router($collection); $router->setUrl('/'); $router->match(); return function () use($router) { $router->callTarget(); $router->response->sendContent(); }; }
public function testGetResponseMethod() { $collection = new RouteCollection(); $collection->addRoutes(ROOT . '/Config/routes.php', ['view_dir' => ROOT . '/Views', 'ctrl_namespace' => 'JetFire\\Routing\\App\\Controllers']); $router = new Router($collection); $router->addMatcher(new ArrayMatcher($router)); $_SERVER['REQUEST_METHOD'] = 'GET'; $router->setUrl('/search'); $this->assertFalse($router->match()); $this->assertEquals(405, $router->response->getStatusCode()); }