Application

最后更新于:2022-04-01 22:33:46

# Application Application ,(或者 `Slim\App` ) 是你的 Slim 应用程序的入口,它被用于注册那些链接到回调和控制器的路由。 ``` // 实例化 App 对象 $app = new \Slim\App(); // 添加路由回调 $app->get('/', function ($request, $response, $args) { return $response->withStatus(200)->write('Hello World!'); }); // 运行应用 $app->run(); ``` ## Application 配置 Application 只接收一个参数。该参数可以是[容器](/docs/concepts/di.html)实例或者用于配置自动创建的默认容器的数组。 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); ``` ### 获取 Settings 由于设置项都被存放在依赖注入容器中,所以你可以通过容器工厂方法(container factories)的 `settings` 关键字来访问它们。例如: ``` $settings = $container->get('settings')['logger']; ``` 还可以在路由回调(route callable)中通过 `$this` 来访问它们: ``` $app->get('/', function ($request, $response, $args) { $loggerSettings = $this->get('settings')['logger']; // ... }); ``` ## Slim 的默认设置 Slim 拥有以下默认设置,你可以按需覆写它们: `httpVersion` [HTTP 响应](/docs/objects/response.html)对象使用的 HTTP 协议版本 (默认: `'1.1'`) `responseChunkSize` 从响应体读取并发送到浏览器的数据包的大小。 (默认: `4096`) `outputBuffering` 当设置为 `false` 时,那么没有输出缓冲被启用。如果 `'append'` 或 `'prepend'`,那么任意 `echo` 或 `print` 状态都会被捕获,并且会 appended 或 prepended 到从路由回调(route callable)中返回的响应中。 (默认: `'append'`) `determineRouteBeforeAppMiddleware` 当设置为 true 时,那么在中间件执行前即已确定路由是否正确。这意味着你如果有需要,可以在中间件中检查路由参数。 (默认: `false`) `displayErrorDetails` 当设置为 true 时, 关于异常的附加信息都会通过 [默认的错误处理器](/docs/handlers/error.html)显示出来。 (默认: `false`)
';