# Application
**Application** 函數是 Pagekit的依賴容器。它使得 Pagekit 的功能和服務都是可配置、可擴展、可互換、可訪問[模塊](224131)。
在 Pagekit 可用的所有服務,都被設置為 `Application` 實例的依賴注入屬性。例如 `$app['db']` 可以訪問數據庫服務。
## 訪問某個服務
要訪問 `Application` 實例,主要有兩種方式。取決于你當前的情況,可以通過訪問 `$app` 變量或者通過靜態調用 `Pagekit\Application` 類來訪問。
```php
// Getter
$app['cache']
use Pagekit\Application as App;
App::cache();
```
如你所見,容器實現了 `\ArrayAccess` 和魔術方法 `__call` 來訪問容器的服務。
## 定義一個服務
通過在容器上設置一個數組鍵作為閉包可以輕松地為 application 添加一個服務。它在首次訪問前不會被評估(evaluated)。
```php
$app['cache'] = function () {
return new Cache();
};
```