类 HelperRegistry
帮助程序的注册表。提供延迟加载帮助程序的功能。
属性概要
方法概要
-
__debugInfo() public
调试友好的对象属性。
-
__get() public
提供对已加载对象的公共读取访问权限
-
__isset() public
提供对 _loaded 的 isset 访问权限
-
__set() public
设置一个对象。
-
__unset() public
取消设置一个对象。
-
_checkDuplicate() protected
检查重复的对象加载。
-
_create() protected
创建帮助程序实例。
-
_resolveClassName() protected
解析帮助程序类名。
-
_throwMissingClassError() protected
当帮助程序缺失时抛出异常。
-
count() public
返回已加载对象的数量。
-
get() public
获取已加载的对象实例。
-
getIterator() public
返回一个数组迭代器。
-
has() public
检查是否加载了给定的对象。
-
load() public
加载/构造一个对象实例。
-
loaded() public
获取已加载对象的列表。
-
normalizeArray() public
将对象配置数组规范化为关联形式,以简化延迟加载。
-
reset() public
清除注册表中的已加载实例。
-
set() public
直接将一个对象按名称设置到注册表中。
-
setIo() public
设置应传递给 shell 帮助程序的 IO 实例
-
unload() public
从注册表中移除一个对象。
方法详细
__get() ¶ public
__get(string $name): object|null
提供对已加载对象的公共读取访问权限
参数
-
string
$name 要读取的属性名称
返回
object|null
__isset() ¶ public
__isset(string $name): bool
提供对 _loaded 的 isset 访问权限
参数
-
string
$name 要检查的对象名称。
返回
bool
__set() ¶ public
__set(string $name, object $object): void
设置一个对象。
参数
-
string
$name 要设置的属性名称。
-
object
$object 要设置的对象。
返回
void
_checkDuplicate() ¶ protected
_checkDuplicate(string $name, array<string, mixed> $config): void
检查重复的对象加载。
如果正在加载重复项并且具有不同的配置,则这是不好的,并且会引发异常。
引发异常,因为替换对象不会更新其他对象可能具有的任何引用。此外,仅更新运行时配置不是一个好选择,因为我们可能缺少依赖于配置的重要构造函数逻辑。
参数
-
string
$name 注册表中别名的名称。
-
array<string, mixed>
$config 新实例的配置数据。
返回
void
抛出
Cake\Core\Exception\CakeException
当找到重复项时。
_create() ¶ protected
_create(object|string $class, string $alias, array<string, mixed> $config): Cake\Console\Helper
创建帮助程序实例。
Cake\Core\ObjectRegistry::load() 的模板方法的一部分
参数
-
object|string
$class 要创建的类名。
-
string
$alias 帮助程序的别名。
-
array<string, mixed>
$config 要用于帮助程序的设置数组。
返回
Cake\Console\Helper
_resolveClassName() ¶ protected
_resolveClassName(string $class): class-stringCake\Console\Helper>|null
解析帮助程序类名。
{@link \Cake\Core\ObjectRegistry::load()} 的模板方法的一部分。
参数
-
string
$class 要解析的部分类名。
返回
class-stringCake\Console\Helper>|null
_throwMissingClassError() ¶ protected
_throwMissingClassError(string $class, string|null $plugin): void
当帮助程序缺失时抛出异常。
Cake\Core\ObjectRegistry::load() 和 Cake\Core\ObjectRegistry::unload() 的模板方法的一部分
参数
-
string
$class 缺少的类名。
-
string|null
$plugin 帮助程序在其中缺少的插件。
返回
void
抛出
Cake\Console\Exception\MissingHelperException
get() ¶ public
get(string $name): object
获取已加载的对象实例。
参数
-
string
$name 对象的名称。
返回
object
抛出
Cake\Core\Exception\CakeException
如果未加载或未找到。
load() ¶ public
load(string $name, array<string, mixed> $config = []): object
加载/构造一个对象实例。
如果实例已存在,则将返回注册表中的实例。如果子类提供事件支持,则可以使用 $config['enabled'] = false
将构造的对象排除在为事件注册之外。
以 {@link \Cake\Controller\Component::$components} 为例。可以通过设置 'className' 键来为一个对象指定别名,例如,
protected $components = [
'Email' => [
'className' => 'App\Controller\Component\AliasedEmailComponent'
];
];
对 Email
组件的所有调用都将使用 AliasedEmail
代替。
参数
-
string
$name 要加载的对象的名称/类。
-
array<string, mixed>
$config optional 在加载对象时使用的其他设置。
返回
object
抛出
Exception
如果找不到该类。
normalizeArray() ¶ public
normalizeArray(array $objects): array<string, array>
将对象配置数组规范化为关联形式,以简化延迟加载。
参数
-
array
$objects 要规范化的子对象数组。
返回
array<string, array>
set() ¶ public
set(string $name, object $object): $this
直接将一个对象按名称设置到注册表中。
如果此集合实现了事件,则传递的对象将附加到事件管理器中
参数
-
string
$name 要设置在注册表中的对象的名称。
-
object
$object 要在注册表中存储的实例
返回
$this
setIo() ¶ public
setIo(Cake\Console\ConsoleIo $io): void
设置应传递给 shell 帮助程序的 IO 实例
参数
-
Cake\Console\ConsoleIo
$io 一个 io 实例。
返回
void
unload() ¶ public
unload(string $name): $this
从注册表中移除一个对象。
如果此注册表具有事件管理器,则该对象也将从任何事件中分离。
参数
-
string
$name 要从注册表中删除的对象的名称。
返回
$this