13

在 Slim 3 发布之前,以下代码可以正常工作:

设置.php,

return [
    'settings' => [
        'displayErrorDetails' => true,
        'modules' => [
           'core' => 'config/core/modules.php',
           'local' => 'config/local/modules.php'
        ],
    ],
];

索引.php

// Instantiate the app
$settings = require __DIR__ . '/../src/settings.php';
$app = new \Slim\App($settings);

$MyClass = new MyClass($app);

MyClass.php

class MyClass
{
    private $app;

    public function __construct($app)
    {
        $this->app = $app;
        $local = require $app->settings['modules']['local'];
    }

但发布后,我在下面收到此错误:

注意:未定义的属性:Slim\App::$settings in /...

那我就不能用$app->settings了吗?那我应该用什么?

4

3 回答 3

16

你可以得到这样的设置:

$container = $app->getContainer();
$settings = $container->get('settings');
于 2015-12-15T10:29:20.847 回答
7

您可以通过 $this 访问设置路由可调用对象

$modulesSettings = $this->get('settings')['modules']['local'];

欲了解更多信息,请阅读此处

于 2016-07-21T10:57:48.290 回答
3

SLIM 3配置文件的地址是pro/src/settings.php,可以添加额外的设置;在任何路线中,您都可以像这样访问它们:

var_dump($this->get('settings')['logger']);
于 2017-06-28T14:12:50.140 回答