Промежуточное ПО Slim Framework, которое выбирает маршрут

Как выбрать маршрут в пользовательском промежуточном ПО Slim?
Я хотел бы указать конкретный маршрут, но я не знаю, как это сделать:

class Acl extends \Slim\Middleware{
public function call()
{
if($isnotlogged){
//force to select "login" route
...
}
$this->next->call();
}
}

0

Решение

Это похоже на рабочий хак:

Свойство \ Slim \ Router $ matchedRoutes имеет защищенную видимость, поэтому я должен создать собственный маршрутизатор, чтобы переопределить его:

class MyRouter extends \Slim\Router {

public function setRoute(\Slim\Route $route){
$this->matchedRoutes=[$route];
}

}

Когда я инициализирую Slim, я должен установить свой маршрутизатор:

$app = new \Slim\Slim();
$app->router=new MyRouter();

Наконец, я могу принудительно выбрать маршрут в своем промежуточном программном обеспечении:

class Acl extends \Slim\Middleware{
public function call()
{
if($isnotlogged){
$this->getApplication()->router()->setRoute($this->getApplication()->router->getNamedRoute("login"));
}
$this->next->call();
}
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]