首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Slim 3中配置DI中间件

如何在Slim 3中配置DI中间件
EN

Stack Overflow用户
提问于 2016-01-04 08:54:02
回答 1查看 1.6K关注 0票数 0

我想在Slim中的依赖容器中配置几个中间件,这样我就可以在同一个地方设置几个常量,并轻松地添加中间件。

例如:

代码语言:javascript
运行
复制
$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中调用中间件:

代码语言:javascript
运行
复制
$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打印的错误消息:

代码语言:javascript
运行
复制
Type: RuntimeException
Message: is not resolvable
File: E:\www\slimServer-3.0\vendor\slim\slim\Slim\CallableResolver.php
Line: 82

我是Slim的新手,有可能在DI中设置中间件吗?有类似情况的指南吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-06 15:35:00

您可以使用$container变量来完成这个任务:

代码语言:javascript
运行
复制
$app->add($container->get('auth'));

然后,您可以在路由器功能中使用它:

代码语言:javascript
运行
复制
$auth = $this->get('auth');

有关更多信息,请查看这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34587490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档