# 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`)