CakePHP
  • 文档
    • 书籍
    • API
    • 视频
    • 报告安全问题
    • 隐私政策
    • 标识和商标
  • 商业解决方案
  • 周边产品
  • 公路旅行
  • 团队
  • 社区
    • 社区
    • 参与
    • 问题 (Github)
    • 面包店
    • 精选资源
    • 培训
    • 聚会
    • 我的 CakePHP
    • CakeFest
    • 通讯
    • 领英
    • YouTube
    • Facebook
    • 推特
    • Mastodon
    • 帮助与支持
    • 论坛
    • Stack Overflow
    • IRC
    • Slack
    • 付费支持
CakePHP

C CakePHP 5.1 雪纺 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
    • 国际化
    • 日志
    • 邮件
    • 网络
    • ORM
    • 路由
    • 测试套件
    • 实用工具
    • 验证
    • 视图

类组件

单个组件的基类。组件提供可重用的控制器逻辑片段,这些逻辑片段可以组合到控制器中。组件还提供请求生命周期回调,以便在特定点注入逻辑。

初始化钩子

与控制器和表格类似,此类具有一个 initialize() 钩子,您可以使用它来添加自定义的“构造函数”逻辑。重要的是要记住,每个请求(和子请求)只会创建任何给定组件的一个实例。

生命周期回调

组件可以提供多个回调,这些回调在请求周期的不同阶段被触发。可用的回调是

  • beforeFilter(EventInterface $event) 默认情况下,在 Controller::beforeFilter() 方法之前调用。
  • startup(EventInterface $event) 在 Controller::beforeFilter() 方法之后调用,并在控制器动作调用之前调用。
  • beforeRender(EventInterface $event) 在 Controller::beforeRender() 之前调用,在视图类加载之前调用。
  • afterFilter(EventInterface $event) 在动作完成后和视图渲染完成后但 Controller::afterFilter() 之前调用。
  • beforeRedirect(EventInterface $event $url, Response $response) 在重定向之前调用。允许您通过返回一个 Response 实例来更改将要重定向到的 URL,该实例使用 Response::location() 设置了新的 URL。可以通过停止事件传播来阻止重定向。

虽然控制器不是回调方法的显式参数,但它是每个事件的主题,可以使用 EventInterface::getSubject() 获取。

命名空间: Cake\Controller
请参见: \Cake\Controller\Controller::$components
链接: https://book.cakephp.com.cn/5/en/controllers/components.html

属性摘要

  • $_config protected
    array<string, mixed>

    运行时配置

  • $_configInitialized protected
    bool

    配置属性是否已使用默认值配置

  • $_defaultConfig protected
    array<string, mixed>

    默认配置

  • $_registry protected
    Cake\Controller\ComponentRegistry

    用于延迟加载组件的组件注册类。

  • $componentInstances protected
    array<string,Cake\Controller\Component>

    加载的组件实例。

  • $components protected
    array

    此组件使用的其他组件。

方法摘要

  • __construct() public

    构造函数

  • __debugInfo() public

    返回一个可以用来描述此对象内部状态的数组。

  • __get() public

    用于延迟加载 $components 的魔术方法。

  • _configDelete() protected

    删除单个配置键。

  • _configRead() protected

    读取配置键。

  • _configWrite() protected

    写入配置键。

  • configShallow() public

    将提供的配置与现有配置合并。与 config() 不同,config() 对嵌套键执行递归合并,此方法执行简单的合并。

  • getConfig() public

    返回配置。

  • getConfigOrFail() public

    返回此特定键的配置。

  • getController() public

    获取此组件绑定的控制器。

  • implementedEvents() public

    获取此组件感兴趣的控制器回调。

  • initialize() public

    构造函数钩子方法。

  • log() public

    用于向日志写入消息的便捷方法。有关向日志写入的更多信息,请参阅 Log::write()。

  • setConfig() public

    设置配置。

方法详情

__construct() ¶ public

__construct(Cake\Controller\ComponentRegistry $registry, array<string, mixed> $config = [])

构造函数

参数
Cake\Controller\ComponentRegistry $registry

此组件可以用来延迟加载其组件的组件注册。

array<string, mixed> $config optional

配置设置数组。

__debugInfo() ¶ public

__debugInfo(): array<string, mixed>

返回一个可以用来描述此对象内部状态的数组。

返回
array<string, mixed>

__get() ¶ public

__get(string $name): Cake\Controller\Component|null

用于延迟加载 $components 的魔术方法。

参数
string $name

要获取的组件的名称。

返回
Cake\Controller\Component|null

_configDelete() ¶ protected

_configDelete(string $key): void

删除单个配置键。

参数
string $key

要删除的键。

返回
void
抛出
Cake\Core\Exception\CakeException
如果试图覆盖现有的配置

_configRead() ¶ protected

_configRead(string|null $key): mixed

读取配置键。

参数
string|null $key

要读取的键。

返回
mixed

_configWrite() ¶ protected

_configWrite(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void

写入配置键。

参数
array<string, mixed>|string $key

要写入的键。

mixed $value

要写入的值。

string|bool $merge optional

如果要递归合并,则为 true,如果要简单合并,则为“浅”,如果要覆盖,则为 false,默认为 false。

返回
void
抛出
Cake\Core\Exception\CakeException
如果试图覆盖现有的配置

configShallow() ¶ public

configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this

将提供的配置与现有配置合并。与 config() 不同,config() 对嵌套键执行递归合并,此方法执行简单的合并。

设置特定值

$this->configShallow('key', $value);

设置嵌套值

$this->configShallow('some.nested.key', $value);

同时更新多个配置设置

$this->configShallow(['one' => 'value', 'another' => 'value']);
参数
array<string, mixed>|string $key

要设置的键,或配置的完整数组。

mixed|null $value optional

要设置的值。

返回
$this

getConfig() ¶ public

getConfig(string|null $key = null, mixed $default = null): mixed

返回配置。

用法

读取整个配置

$this->getConfig();

读取特定值

$this->getConfig('key');

读取嵌套值

$this->getConfig('some.nested.key');

使用默认值读取

$this->getConfig('some-key', 'default-value');
参数
string|null $key optional

要获取的键,如果要获取整个配置,则为 null。

mixed $default optional

键不存在时的返回值。

返回
mixed

getConfigOrFail() ¶ public

getConfigOrFail(string $key): mixed

返回此特定键的配置。

此键的配置值必须存在,永远不能为 null。

参数
string $key

要获取的键。

返回
mixed
抛出
InvalidArgumentException

getController() ¶ public

getController(): Cake\Controller\Controller

获取此组件绑定的控制器。

返回
Cake\Controller\Controller

implementedEvents() ¶ public

implementedEvents(): array<string, mixed>

获取此组件感兴趣的控制器回调。

使用约定将控制器事件映射到标准组件回调方法名。通过定义其中一个回调方法,组件被认为对相关事件感兴趣。

如果你需要添加非约定式事件监听器,或者你想让组件监听非标准事件,请重写此方法。

返回
array<string, mixed>

initialize() ¶ public

initialize(array<string, mixed> $config): void

构造函数钩子方法。

实现此方法以避免覆盖构造函数并调用父类。

参数
array<string, mixed> $config

提供给此组件的配置设置。

返回
void

log() ¶ public

log(Stringable|string $message, string|int $level = LogLevel::ERROR, array|string $context = []): bool

用于向日志写入消息的便捷方法。有关向日志写入的更多信息,请参阅 Log::write()。

参数
Stringable|string $message

日志消息。

string|int $level 可选

错误级别。

array|string $context 可选

与此消息相关的其他日志数据。

返回
bool

setConfig() ¶ public

setConfig(array<string, mixed>|string $key, mixed|null $value = null, bool $merge = true): $this

设置配置。

用法

设置特定值

$this->setConfig('key', $value);

设置嵌套值

$this->setConfig('some.nested.key', $value);

同时更新多个配置设置

$this->setConfig(['one' => 'value', 'another' => 'value']);
参数
array<string, mixed>|string $key

要设置的键,或配置的完整数组。

mixed|null $value optional

要设置的值。

bool $merge 可选

是否递归合并或覆盖现有配置,默认为 true。

返回
$this
抛出
Cake\Core\Exception\CakeException
当尝试设置一个无效的键时。

属性详情

$_config ¶ protected

运行时配置

类型
array<string, mixed>

$_configInitialized ¶ protected

配置属性是否已使用默认值配置

类型
bool

$_defaultConfig ¶ protected

默认配置

这些在组件使用时与用户提供的配置合并。

类型
array<string, mixed>

$_registry ¶ protected

用于延迟加载组件的组件注册类。

类型
Cake\Controller\ComponentRegistry

$componentInstances ¶ protected

加载的组件实例。

类型
array<string,Cake\Controller\Component>

$components ¶ protected

此组件使用的其他组件。

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

使用 CakePHP API 文档 生成