Reputation: 57196
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?
Upvotes: 14
Views: 15558
Reputation: 16307
You can access settings route callables via $this
$modulesSettings = $this->get('settings')['modules']['local'];
For more information read here
Upvotes: 7
Reputation: 170
The address of the SLIM 3 configuration file is pro/src/settings.php, and you can add additional settings; In any route you can access them like this:
var_dump($this->get('settings')['logger']);
Upvotes: 3
Reputation: 2467
You can get settings like this:
$container = $app->getContainer();
$settings = $container->get('settings');
Upvotes: 17