我想在Slim中的依赖容器中配置几个中间件,这样我就可以在同一个地方设置几个常量,并轻松地添加中间件。
例如:
$configuration = [
'settings' => [
'displayErrorDetails' => true,
],
'auth_settings' => [
'serect' => 'garyAPIserver',
],
];
$container = new Slim\Container($configuration);
$container['auth'] = function ($c) {
return new AuthMiddleware($c['auth_settings']);
};
$app = new Slim\App($container);
我尝试在DI中调用中间件:
$app->add($app->get('auth'));
我得到了由php打印的警告消息:
警告: Slim\App::get()缺少参数2,在E:\www\slimServer-3.0\index.php第12行调用,在第146行的E:\www\slimServer-3.0\vendor\slim\slim\Slim\App.php中定义
以及Slim打印的错误消息:
Type: RuntimeException
Message: is not resolvable
File: E:\www\slimServer-3.0\vendor\slim\slim\Slim\CallableResolver.php
Line: 82
我是Slim的新手,有可能在DI中设置中间件吗?有类似情况的指南吗?
发布于 2016-01-06 15:35:00
您可以使用$container
变量来完成这个任务:
$app->add($container->get('auth'));
然后,您可以在路由器功能中使用它:
$auth = $this->get('auth');
有关更多信息,请查看这里。
https://stackoverflow.com/questions/34587490
复制相似问题