# 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();
};
```