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
    • 缓存
    • 集合
    • 命令
    • 控制台
    • 控制器
    • 核心
    • 数据库
    • 数据源
    • 错误
    • 事件
    • 表单
    • Http
    • I18n
    • 日志
    • 邮件
    • 网络
    • ORM
      • 关联
      • 行为
      • 异常
      • 定位器
      • 查询
      • 规则
    • 路由
    • 测试套件
    • 实用程序
    • 验证
    • 视图

类 BehaviorRegistry

BehaviorRegistry 用作加载行为的注册表,并处理行为对象的加载和构建。

此类还提供用于检查和分派行为方法的方法。

命名空间: Cake\ORM

属性概述

  • $_eventClass protected
    string

    新事件对象的默认类名。

  • $_eventManager protected
    Cake\Event\EventManagerInterface|null

    Cake\Event\EventManager 的实例,此对象正在使用它来分派内部事件。

  • $_finderMap protected
    array<string, array>

    查找器方法映射。

  • $_loaded protected
    array<string, object>

    加载对象的映射。

  • $_methodMap protected
    array<string, array>

    方法映射。

  • $_table protected
    Cake\ORM\Table

    使用此注册表的表。

方法概述

  • __construct() public

    构造函数

  • __debugInfo() public

    调试友好的对象属性。

  • __get() public

    为加载的对象提供公共读取访问权限

  • __isset() public

    为 _loaded 提供 isset 访问权限

  • __set() public

    设置一个对象。

  • __unset() public

    取消设置一个对象。

  • _checkDuplicate() protected

    检查重复的对象加载。

  • _create() protected

    创建行为实例。

  • _getMethods() protected

    获取行为方法并确保没有重复。

  • _resolveClassName() protected

    解析行为类名。

  • _throwMissingClassError() protected

    当行为丢失时抛出异常。

  • call() public

    在行为上调用方法。

  • callFinder() public

    在行为上调用查找器。

  • className() public static

    解析行为类名。

  • count() public

    返回加载对象的数目。

  • dispatchEvent() public

    用于创建和分派事件的包装器。

  • get() public

    获取加载的对象实例。

  • getEventManager() public

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

  • getIterator() public

    返回一个数组迭代器。

  • has() public

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

  • hasFinder() public

    检查任何加载的行为是否实现了命名的查找器。

  • hasMethod() public

    检查任何加载的行为是否实现了方法。

  • load() public

    加载/构造对象实例。

  • loaded() public

    获取加载对象的列表。

  • normalizeArray() public

    将对象配置数组规范化为关联形式,以简化延迟加载。

  • reset() public

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

  • set() public

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

  • setEventManager() public

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

  • setTable() public

    将表实例附加到此注册表。

  • unload() public

    从注册表中删除对象。

方法详情

__construct() ¶ public

__construct(Cake\ORM\Table|null $table = null)

构造函数

参数
Cake\ORM\Table|null $table 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\ORM\Behavior

创建行为实例。

Cake\Core\ObjectRegistry::load() 的模板方法的一部分 已启用的行为将注册到事件管理器。

参数
object|string $class

缺少的类名。

string $alias

对象的别名。

array<string, mixed> $config

用于行为的配置数组。

返回
Cake\ORM\Behavior

_getMethods() ¶ protected

_getMethods(Cake\ORM\Behavior $instance, string $class, string $alias): array

获取行为方法并确保没有重复。

使用 implementedEvents() 方法来排除回调方法。以 _ 开头的将被忽略,Cake\ORM\Behavior 上声明的方法也将被忽略

参数
Cake\ORM\Behavior $instance

要从中获取方法的行为。

string $class

缺少的类名。

string $alias

对象的别名。

返回
array
抛出
LogicException
当连接重复方法时。

_resolveClassName() ¶ protected

_resolveClassName(string $class): class-stringCake\ORM\Behavior>|null

解析行为类名。

Cake\Core\ObjectRegistry::load() 的模板方法的一部分

参数
string $class

要解析的部分类名。

返回
class-stringCake\ORM\Behavior>|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\ORM\Exception\MissingBehaviorException

call() ¶ public

call(string $method, array $args = []): mixed

在行为上调用方法。

参数
string $method

要调用的方法。

array $args optional

要调用方法时要使用的参数。

返回
mixed
抛出
BadMethodCallException
当方法未知时。

callFinder() ¶ public

callFinder(string $type, Cake\ORM\Query\SelectQuery<TSubject> $query, mixed ...$args): Cake\ORM\Query\SelectQuery<TSubject>

在行为上调用查找器。

参数
string $type

要调用的查找器类型。

Cake\ORM\Query\SelectQuery<TSubject> $query

要应用查找器选项的查询对象。

mixed ...$args

与查找器特定参数匹配的参数

返回
Cake\ORM\Query\SelectQuery<TSubject>
抛出
BadMethodCallException
当方法未知时。

className() ¶ public static

className(string $class): string|null

解析行为类名。

参数
string $class

要解析的部分类名。

返回
string|null

count() ¶ public

count(): int

返回加载对象的数目。

返回
int

dispatchEvent() ¶ public

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

用于创建和分派事件的包装器。

返回已分发的事件。

参数
string $name

事件的名称。

array $data optional

您希望通过此事件传输的任何值,监听器都可以读取。

TSubject|null $subject optional

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

返回
Cake\Event\EventInterface<TSubject>

get() ¶ public

get(string $name): object

获取加载的对象实例。

参数
string $name

对象名称。

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

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

hasFinder() ¶ public

hasFinder(string $method): bool

检查任何加载的行为是否实现了命名的查找器。

如果任何行为提供具有所选名称的公共方法,则返回 true。

参数
string $method

要检查的方法。

返回
bool

hasMethod() ¶ public

hasMethod(string $method): bool

检查任何加载的行为是否实现了方法。

如果任何行为提供具有所选名称的公共非查找器方法,则返回 true。

参数
string $method

要检查的方法。

返回
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 optional

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

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

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

setEventManager() ¶ public

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

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

您可以使用此实例将任何新的监听器或回调注册到对象事件,或者创建您自己的事件并在需要时触发它们。

参数
Cake\Event\EventManagerInterface $eventManager

要设置的事件管理器

返回
$this

setTable() ¶ public

setTable(Cake\ORM\Table $table): void

将表实例附加到此注册表。

参数
Cake\ORM\Table $table

此注册表附加到的表。

返回
void

unload() ¶ public

unload(string $name): $this

从注册表中删除对象。

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

参数
string $name

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

返回
$this

属性详情

$_eventClass ¶ protected

新事件对象的默认类名。

类型
string

$_eventManager ¶ protected

Cake\Event\EventManager 的实例,此对象正在使用它来分派内部事件。

类型
Cake\Event\EventManagerInterface|null

$_finderMap ¶ protected

查找器方法映射。

类型
array<string, array>

$_loaded ¶ protected

加载对象的映射。

类型
array<string, object>

$_methodMap ¶ protected

方法映射。

类型
array<string, array>

$_table ¶ protected

使用此注册表的表。

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

使用 CakePHP API 文档 生成