跳至主要内容
版本: 5.1

依赖注入容器

Joomla 依赖注入容器,简称 DIC,基本上是一个键值对存储库,其中

  • 键是一个字符串,通常是类的完全限定名称或接口
  • 值是相关类的实例,或返回该类实例的函数。

键的值实际上并不重要 - 只要它可理解,并且在放入和取出条目时使用相同的键即可。当然,它必须是唯一的。

DIC

您可以使用 set() 将内容放入容器,传递

  • 键 = 类名或接口名
  • 值 = 返回类实例的函数(或者值可以只是类实例,无需包含函数)
  • shared - 一个布尔值,用于定义类实例是否可以共享(即,如果对 DIC 的第二个请求提供该实例,它返回的是相同的实例还是新的实例)
  • protected - 一个布尔值,用于定义此 DI 容器中的条目是否受保护(如果您尝试使用相同的键再次调用 set() 来覆盖受保护的条目,则会引发错误)。

函数 share() 基本上与 set() 相同,只是将 shared 布尔值设置为 true。

您可以通过调用 get() 并传递您想要的资源的键来从容器中获取内容。DI 功能将

  • 在容器中查找键
  • 如果值还不是类实例,则运行关联的函数来生成类实例
  • 如果资源是共享的,则存储类实例,以便在后续调用 get() 时,它可以直接返回实例
  • 将类实例返回给您

您还可以在容器中为每个键定义别名,这意味着您可以调用 get(),传递键或键的别名。