获取 slim 4 中的设置(例如应用程序根目录的路径)
Get settings in slim 4 (eg. path of application root directory)
问题
如何访问路径设置,或者更一般地说,如何访问 settings.php
中定义的设置。
我的settings.php
重要说明:这些是测试环境的值,必须更改生产环境!
// Should be set to 0 in production
error_reporting(E_ALL);
// Should be set to '0' in production
ini_set('display_errors', '1');
// Timezone
date_default_timezone_set('FILL_IN_YOUR_TIMEZONE');
// Settings
$settings = [];
// Path settings
$settings['root'] = dirname(__DIR__);
$settings['temp'] = $settings['root'] . '/tmp';
$settings['public'] = $settings['root'] . '/public_html';
// Error Handling Middleware settings
$settings['error'] = [
// Should be set to false in production
'display_error_details' => true,
// Parameter is passed to the default ErrorHandler
// View in rendered output by enabling the "displayErrorDetails" setting.
// For the console and unit tests we also disable it
'log_errors' => true,
// Display error details in error log
'log_error_details' => true,
];
return $settings;
我已经为此工作了几个小时,尝试了不同的想法,但在 Slim v4 文档和其他网站上都没有找到任何有用的线索。
解决方案非常简单,但不知何故缺少 slim 4 的文档:
您可以通过 $app->get('settings')
访问设置。一个路由内,也就是$this
,当然是
例如:
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
$app->get('/wiki/{id:[1-9]\d*}/edit'), function (ServerRequestInterface $request, ResponseInterface $response) {
...
$filename = $this->get('settings')['root'].'/src/content/wiki/edit.html';
...
return (...);
});
问题
如何访问路径设置,或者更一般地说,如何访问 settings.php
中定义的设置。
我的settings.php
重要说明:这些是测试环境的值,必须更改生产环境!
// Should be set to 0 in production
error_reporting(E_ALL);
// Should be set to '0' in production
ini_set('display_errors', '1');
// Timezone
date_default_timezone_set('FILL_IN_YOUR_TIMEZONE');
// Settings
$settings = [];
// Path settings
$settings['root'] = dirname(__DIR__);
$settings['temp'] = $settings['root'] . '/tmp';
$settings['public'] = $settings['root'] . '/public_html';
// Error Handling Middleware settings
$settings['error'] = [
// Should be set to false in production
'display_error_details' => true,
// Parameter is passed to the default ErrorHandler
// View in rendered output by enabling the "displayErrorDetails" setting.
// For the console and unit tests we also disable it
'log_errors' => true,
// Display error details in error log
'log_error_details' => true,
];
return $settings;
我已经为此工作了几个小时,尝试了不同的想法,但在 Slim v4 文档和其他网站上都没有找到任何有用的线索。
解决方案非常简单,但不知何故缺少 slim 4 的文档:
您可以通过 $app->get('settings')
访问设置。一个路由内,也就是$this
,当然是
例如:
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
$app->get('/wiki/{id:[1-9]\d*}/edit'), function (ServerRequestInterface $request, ResponseInterface $response) {
...
$filename = $this->get('settings')['root'].'/src/content/wiki/edit.html';
...
return (...);
});