Application

Application ,(或者 Slim\App ) 是你的 Slim 应用程序的入口,它被用于注册那些链接到回调和控制器的路由。

  1. // 实例化 App 对象
  2. $app = new \Slim\App();
  3. // 添加路由回调
  4. $app->get('/', function ($request, $response, $args) {
  5. return $response->withStatus(200)->write('Hello World!');
  6. });
  7. // 运行应用
  8. $app->run();

Application 配置

Application 只接收一个参数。该参数可以是容器实例或者用于配置自动创建的默认容器的数组。

Slim 还用到了一系列的设置项。它们被存放在 settings 配置关键字中。你还可以添加你的应用程序私有的设置项。

例如,我们可以将 Slim的设置项 displayErrorDetails 设置为 true,并配置 Monolog,像这样:

  1. $config = [
  2. 'settings' => [
  3. 'displayErrorDetails' => true,
  4. 'logger' => [
  5. 'name' => 'slim-app',
  6. 'level' => Monolog\Logger::DEBUG,
  7. 'path' => __DIR__ . '/../logs/app.log',
  8. ],
  9. ],
  10. ];
  11. $app = new \Slim\App($config);

获取 Settings

由于设置项都被存放在依赖注入容器中,所以你可以通过容器工厂方法(container factories)的 settings 关键字来访问它们。例如:

  1. $settings = $container->get('settings')['logger'];

还可以在路由回调(route callable)中通过 $this 来访问它们:

  1. $app->get('/', function ($request, $response, $args) {
  2. $loggerSettings = $this->get('settings')['logger'];
  3. // ...
  4. });

Slim 的默认设置

Slim 拥有以下默认设置,你可以按需覆写它们:

httpVersion

HTTP 响应对象使用的 HTTP 协议版本(默认: '1.1')

responseChunkSize

从响应体读取并发送到浏览器的数据包的大小。(默认: 4096)

outputBuffering

当设置为 false 时,那么没有输出缓冲被启用。如果 'append''prepend',那么任意 echoprint 状态都会被捕获,并且会 appended 或 prepended 到从路由回调(route callable)中返回的响应中。(默认: 'append')

determineRouteBeforeAppMiddleware

当设置为 true 时,那么在中间件执行前即已确定路由是否正确。这意味着你如果有需要,可以在中间件中检查路由参数。(默认: false)

displayErrorDetails

当设置为 true 时, 关于异常的附加信息都会通过 默认的错误处理器显示出来。(默认: false)