web-dev-qa-db-ja.com

スリム3:設定にアクセスする方法は?

Slim 3がリリースされる前は、以下のコードが正常に機能します。

settings.php、

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

index.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.

だから私はもう$app->settingsを使うことができませんか?それでは何を使うべきですか?

11
laukok

次のような設定を取得できます。

$container = $app->getContainer();
$settings = $container->get('settings');
13
moallemi

$ thisを介して設定ルートの呼び出し可能オブジェクトにアクセスできます

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

詳細については ここを読んでください

7
Nanhe Kumar

SLIM3構成ファイルのアドレスはpro/src/settings.phpであり、設定を追加できます。どのルートでも、次のようにアクセスできます。

var_dump($this->get('settings')['logger']);
3
eberlast