CakePHP
  • 文档
    • 书籍
    • API
    • 视频
    • 报告安全问题
    • 隐私政策
    • 标志和商标
  • 商业解决方案
  • 纪念品
  • 公路旅行
  • 团队
  • 社区
    • 社区
    • 参与进来
    • 问题 (Github)
    • 烘焙坊
    • 精选资源
    • 培训
    • 聚会
    • 我的 CakePHP
    • CakeFest
    • 时事通讯
    • 领英
    • YouTube
    • 脸书
    • 推特
    • Mastodon
    • 帮助和支持
    • 论坛
    • Stack Overflow
    • IRC
    • Slack
    • 付费支持
CakePHP

C CakePHP 5.1 Chiffon API

  • 项目
    • CakePHP
      • CakePHP
      • Chronos
      • Elastic Search
      • 队列
  • 版本
    • 5.1
      • 5.1
      • 5.0
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

命名空间

  • 全局
  • Cake
    • Cache
    • Collection
    • Command
    • Console
    • Controller
      • Component
      • Exception
    • Core
    • Database
    • Datasource
    • Error
    • Event
    • Form
    • Http
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • TestSuite
    • Utility
    • Validation
    • View

类 ComponentRegistry

ComponentRegistry 是一个用于加载组件的注册表。

处理组件类对象的加载、构造和绑定事件。

命名空间: Cake\Controller

属性汇总

  • $_Controller protected
    Cake\Controller\Controller|null

    与该集合关联的控制器。

  • $_eventClass protected
    string

    新事件对象的默认类名。

  • $_eventManager protected
    Cake\Event\EventManagerInterface|null

    Cake\Event\EventManager 的实例,该对象用于调度内部事件。

  • $_loaded protected
    array<string, object>

    加载对象的映射。

  • $container protected
    Cake\Core\ContainerInterface|null

方法汇总

  • __construct() public

    构造函数。

  • __debugInfo() public

    调试友好的对象属性。

  • __get() public

    提供对加载对象的公共读访问

  • __isset() public

    提供对 _loaded 的 isset 访问

  • __set() public

    设置一个对象。

  • __unset() public

    取消设置一个对象。

  • _checkDuplicate() protected

    检查重复的对象加载。

  • _create() protected

    创建组件实例。

  • _resolveClassName() protected

    解析组件类名。

  • _throwMissingClassError() protected

    在组件缺失时抛出异常。

  • count() public

    返回加载对象的个数。

  • dispatchEvent() public

    创建和调度事件的包装器。

  • get() public

    获取加载的对象实例。

  • getController() public

    获取与集合关联的控制器。

  • getEventManager() public

    返回此对象的 Cake\Event\EventManager 管理器实例。

  • getIterator() public

    返回一个数组迭代器。

  • has() public

    检查是否加载了给定的对象。

  • load() public

    加载/构造对象实例。

  • loaded() public

    获取加载对象的列表。

  • normalizeArray() public

    将对象配置数组规范化为关联形式,以便更轻松地进行延迟加载。

  • reset() public

    清除注册表中加载的实例。

  • set() public

    直接按名称将对象设置到注册表中。

  • setController() public

    设置与集合关联的控制器。

  • setEventManager() public

    返回此对象的 Cake\Event\EventManagerInterface 实例。

  • unload() public

    从注册表中移除一个对象。

方法详情

__construct() ¶ public

__construct(Cake\Controller\Controller|null $controller = null, Cake\Core\ContainerInterface|null $container = null)

构造函数。

参数
Cake\Controller\Controller|null $controller optional

控制器实例。

Cake\Core\ContainerInterface|null $container optional

容器实例。

__debugInfo() ¶ public

__debugInfo(): array<string, mixed>

调试友好的对象属性。

返回
array<string, mixed>

__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

__unset() ¶ public

__unset(string $name): void

取消设置一个对象。

参数
string $name

要取消设置的属性名称。

返回
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\Controller\Component

创建组件实例。

用于 {@link \Cake\Core\ObjectRegistry::load()} 的模板方法的一部分。启用的组件将注册到事件管理器中。

参数
object|string $class

要创建的类名。

string $alias

组件的别名。

array<string, mixed> $config

要用于组件的配置数组。

返回
Cake\Controller\Component

_resolveClassName() ¶ protected

_resolveClassName(string $class): class-stringCake\Controller\Component>|null

解析组件类名。

用于 {@link \Cake\Core\ObjectRegistry::load()} 的模板方法的一部分。

参数
string $class

要解析的部分类名。

返回
class-stringCake\Controller\Component>|null

_throwMissingClassError() ¶ protected

_throwMissingClassError(string $class, string|null $plugin): void

在组件缺失时抛出异常。

用于 {@link \Cake\Core\ObjectRegistry::load()} 和 {@link \Cake\Core\ObjectRegistry::unload()} 的模板方法的一部分。

参数
string $class

缺失的类名。

string|null $plugin

组件缺失的插件。

返回
void
抛出
Cake\Controller\Exception\MissingComponentException

count() ¶ public

count(): int

返回加载对象的个数。

返回
int

dispatchEvent() ¶ public

dispatchEvent(string $name, array $data = [], TSubject|null $subject = null): Cake\Event\EventInterface<TSubject>

创建和调度事件的包装器。

返回一个已分发的事件。

参数
string $name

事件的名称。

array $data 可选

任何您希望与该事件一起传递的值,监听器可以读取这些值。

TSubject|null $subject 可选

该事件适用的对象(默认情况下为 $this)。

返回
Cake\Event\EventInterface<TSubject>

get() ¶ public

get(string $name): object

获取加载的对象实例。

参数
string $name

对象的名称。

返回
object
抛出
Cake\Core\Exception\CakeException
如果未加载或未找到。

getController() ¶ public

getController(): Cake\Controller\Controller

获取与集合关联的控制器。

返回
Cake\Controller\Controller

getEventManager() ¶ public

getEventManager(): Cake\Event\EventManagerInterface

返回此对象的 Cake\Event\EventManager 管理器实例。

您可以使用此实例向对象事件注册任何新的监听器或回调,或创建您自己的事件并随意触发它们。

返回
Cake\Event\EventManagerInterface

getIterator() ¶ public

getIterator(): Traversable

返回一个数组迭代器。

返回
Traversable

has() ¶ public

has(string $name): bool

检查是否加载了给定的对象。

参数
string $name

要检查的对象名称。

返回
bool

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 可选

加载对象时要使用的其他设置。

返回
object
抛出
Exception
如果找不到该类。

loaded() ¶ public

loaded(): list<string>

获取加载对象的列表。

返回
list<string>

normalizeArray() ¶ public

normalizeArray(array $objects): array<string, array>

将对象配置数组规范化为关联形式,以便更轻松地进行延迟加载。

参数
array $objects

要规范化的子对象数组。

返回
array<string, array>

reset() ¶ public

reset(): $this

清除注册表中加载的实例。

如果注册表子类具有事件管理器,则对象也会从事件中分离。

返回
$this

set() ¶ public

set(string $name, object $object): $this

直接按名称将对象设置到注册表中。

如果此集合实现事件,则传递的对象将附加到事件管理器中

参数
string $name

要设置在注册表中的对象的名称。

object $object

要存储在注册表中的实例

返回
$this

setController() ¶ public

setController(Cake\Controller\Controller $controller): $this

设置与集合关联的控制器。

参数
Cake\Controller\Controller $controller

控制器实例。

返回
$this

setEventManager() ¶ public

setEventManager(Cake\Event\EventManagerInterface $eventManager): $this

返回此对象的 Cake\Event\EventManagerInterface 实例。

您可以使用此实例向对象事件注册任何新的监听器或回调,或创建您自己的事件并随意触发它们。

参数
Cake\Event\EventManagerInterface $eventManager

要设置的 eventManager

返回
$this

unload() ¶ public

unload(string $name): $this

从注册表中移除一个对象。

如果此注册表具有事件管理器,则对象也将从任何事件中分离。

参数
string $name

要从注册表中删除的对象的名称。

返回
$this

属性详情

$_Controller ¶ protected

与该集合关联的控制器。

类型
Cake\Controller\Controller|null

$_eventClass ¶ protected

新事件对象的默认类名。

类型
string

$_eventManager ¶ protected

Cake\Event\EventManager 的实例,该对象用于调度内部事件。

类型
Cake\Event\EventManagerInterface|null

$_loaded ¶ protected

加载对象的映射。

类型
array<string, object>

$container ¶ protected

类型
Cake\Core\ContainerInterface|null
OpenHub
Pingping
Linode
  • 商务解决方案
  • 展示
  • 文档
  • 书籍
  • API
  • 视频
  • 报告安全问题
  • 隐私政策
  • 标志和商标
  • 社区
  • 参与进来
  • 问题 (Github)
  • 烘焙坊
  • 精选资源
  • 培训
  • 聚会
  • 我的 CakePHP
  • CakeFest
  • 时事通讯
  • 领英
  • YouTube
  • 脸书
  • 推特
  • Mastodon
  • 帮助和支持
  • 论坛
  • Stack Overflow
  • IRC
  • Slack
  • 付费支持

使用 CakePHP API 文档 生成