类 ServiceProvider
容器 ServiceProvider
服务提供者捆绑相关的服务在一起,有助于组织应用程序的依赖关系。它们还通过允许服务注册延迟到需要服务时,帮助提高具有许多服务的应用程序的性能。
属性摘要
-
$container protected
?DefinitionContainerInterface
-
$identifier protected
string
-
$provides protected
list<string>
此提供者提供的服务的 ID 列表。
方法摘要
-
boot() public
委托给 bootstrap() 方法
-
bootstrap() public
服务提供者的引导钩子
-
getContainer() public
获取容器。
-
getIdentifier() public
-
provides() public
provides 方法是一种让容器知道此服务提供者提供了服务的机制。
-
register() public
调用抽象 services() 方法。
-
services() abstract public
在提供者中注册服务。
-
setContainer() public
-
setIdentifier() public
方法详情
boot() ¶ public
boot(): void
委托给 bootstrap() 方法
此方法包装了 league/container 函数,因此用户只需要使用 CakePHP 的 bootstrap() 接口。
返回值
void
bootstrap() ¶ public
bootstrap(Cake\Core\ContainerInterface $container): void
服务提供者的引导钩子
如果您的服务提供者需要注册其他服务提供者、加载配置文件或在服务提供者添加到容器时执行任何其他工作,则应实现此钩子。
参数
-
Cake\Core\ContainerInterface
$container 要添加服务的容器。
返回值
void
getContainer() ¶ public
getContainer(): Cake\Core\ContainerInterface
获取容器。
返回值
Cake\Core\ContainerInterface
provides() ¶ public
provides(string $id): bool
provides 方法是一种让容器知道此服务提供者提供了服务的机制。
通过此服务提供者注册的每个服务都必须在此数组中添加别名,否则它将被忽略。
参数
-
string
$id 标识符。
返回值
bool
register() ¶ public
register(): void
调用抽象 services() 方法。
此方法主要作为 league/container 拥有的接口和我们希望在 CakePHP 中提供的接口之间的垫片。
返回值
void
services() ¶ abstract public
services(Cake\Core\ContainerInterface $container): void
在提供者中注册服务。
在此方法中注册的所有服务也应包含在 $provides 属性中,以便可以找到服务。
参数
-
Cake\Core\ContainerInterface
$container 要添加服务的容器。
返回值
void
setContainer() ¶ public
setContainer(DefinitionContainerInterface $container): ContainerAwareInterface
参数
-
DefinitionContainerInterface
$container
返回值
ContainerAwareInterface
setIdentifier() ¶ public
setIdentifier(string $id): ServiceProviderInterface
参数
-
string
$id
返回值
ServiceProviderInterface