teelou teelou - 3 months ago 28
PHP Question

Slim 3: how to access settings?

Before the Slim 3 is released, codes below work fine:

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'];
}


But after the release, I get this error below:


Notice: Undefined property: Slim\App::$settings in /...


So I can't use
$app->settings
anymore? What should I use then?

Answer

You can get settings like this:

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