Application
Application ,(或者 SlimApp
) 是你的 Slim 应用程序的入口,它被用于注册那些链接到回调和控制器的路由。
// 实例化 App 对象
$app = new SlimApp();
// 添加路由回调
$app->get("/", function ($request, $response, $args) {
return $response->withStatus(200)->write("Hello World!");
});
// 运行应用
$app->run();
Application 配置
Application 只接收一个参数。该参数可以是容器实例或者用于配置自动创建的默认容器的数组。
Slim 还用到了一系列的设置项。它们被存放在 settings
配置关键字中。你还可以添加你的应用程序私有的设置项。
例如,我们可以将 Slim的设置项 displayErrorDetails
设置为 true,并配置 Monolog,像这样:
$config = [
"settings" => [
"displayErrorDetails" => true,
"logger" => [
"name" => "slim-app",
"level" => MonologLogger::DEBUG,
"path" => __DIR__ . "/../logs/app.log",
],
],
];
$app = new SlimApp($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 响应对象使用的 HTTP 协议版本
(默认: "1.1"
)
responseChunkSize
从响应体读取并发送到浏览器的数据包的大小。
(默认: 4096
)
outputBuffering
当设置为 false
时,那么没有输出缓冲被启用。如果 "append"
或 "prepend"
,那么任意 echo
或 print
状态都会被捕获,并且会 appended 或 prepended 到从路由回调(route callable)中返回的响应中。
(默认: "append"
)
determineRouteBeforeAppMiddleware
当设置为 true 时,那么在中间件执行前即已确定路由是否正确。这意味着你如果有需要,可以在中间件中检查路由参数。
(默认: false
)
displayErrorDetails
当设置为 true 时, 关于异常的附加信息都会通过 默认的错误处理器显示出来。
(默认: false
)