title |
---|
Приложение |
Приложение, (или Slim\App
) является точкой входа в ваше Slim-приложение и используется для
регистрации маршрутов, которые ссылаются на ваши обратные вызовы или контроллеры.
// instantiate the App object
$app = new \Slim\App();
// Add route callbacks
$app->get('/', function ($request, $response, $args) {
return $response->withStatus(200)->write('Hello World!');
});
// Run application
$app->run();
Приложение принимает только один аргумент. Это может быть либо экземпляр контейнера либо массив для настройки контейнера по умолчанию, который создается автоматически.
Также есть ряд настроек, которые используются Slim. Они сохраняются в settings
ключе конфигурации. Вы также можете добавить свои настройки для конкретного приложения.
Например, мы можем установить для параметра Slim значение displayErrorDetails
true, а также настроить
Monolog следующим образом:
$config = [
'settings' => [
'displayErrorDetails' => true,
'logger' => [
'name' => 'slim-app',
'level' => Monolog\Logger::DEBUG,
'path' => __DIR__ . '/../logs/app.log',
],
],
];
$app = new \Slim\App($config);
Поскольку настройки хранятся в контейнере DI, вы можете получить к ним доступ через settings
ключ в
контейнерах. Например:
$loggerSettings = $container->get('settings')['logger'];
Вы также можете получить к ним доступ в маршрутных вызовах через $this
:
$app->get('/', function ($request, $response, $args) {
$loggerSettings = $this->get('settings')['logger'];
// ...
});
Если вам нужно добавить или обновить настройки, сохраненные в контейнере DI после инициализации
контейнера, вы можете использовать этот replace
метод в контейнере настроек. Например:
$settings = $container->get('settings');
$settings->replace([
'displayErrorDetails' => true,
'determineRouteBeforeAppMiddleware' => true,
'debug' => true
]);
]);
Slim имеет следующие настройки по умолчанию, которые вы можете переопределить:
- httpVersion
- Версия протокола, используемая объектом Response
object.
(По умолчанию: `1.1`) - >responseChunkSize
- Размер каждого фрагмента, считываемого из тела ответа при отправке в браузер.
(По умолчанию: 4096) - >outputBuffering
- Если false, то буферизация вывода не включена. Если `append` или `prepend`, то любые echo или print
утверждения захватываются и добавляются или добавляются к Ответу, возвращенному из маршрута, который можно вызывать.
(По умолчанию: >`append`) - >determineRouteBeforeAppMiddleware
- Когда true, маршрут вычисляется до выполнения любого промежуточного программного обеспечения.
Это означает, что вы можете проверить параметры маршрута в промежуточном программном обеспечении, если вам нужно.
(По умолчанию: `false`) - >displayErrorDetails
- Когда true, дополнительная информация об исключениях отображается
[обработчиком ошибок по умолчанию](/docs/handlers/error).
(По умолчанию: false) - >addContentLengthHeader
- Когда true, Slim добавит Content-Length заголовок к ответу. Если вы используете средство
аналитики времени исполнения, например New Relic, то это должно быть отключено.
(По умолчанию: true) - >routerCacheFile
- Имя файла для кэширования маршрутов FastRoute. Должно быть установлено допустимое имя файла в
каталоге, пригодном для записи. Если файл не существует, он создается с правильной информацией о
кеше при первом запуске.
Установите для `false` отключения системы кэширования `FastRoute`.
(По умолчанию: false)