类 FormProtectionComponent
防止表单篡改。它确保
- 表单的动作 (URL) 不会被修改。
- 未知/额外的字段不会被添加到表单中。
- 现有的字段不会从表单中移除。
- 隐藏输入的值不会被更改。
常量
-
字符串
DEFAULT_EXCEPTION_MESSAGE ¶'Form tampering protection token validation failed.'
用于抛出异常的默认消息。
属性摘要
-
$_config protected
array<string, mixed>
运行时配置
-
$_configInitialized protected
布尔值
配置属性是否已使用默认值进行配置
-
$_defaultConfig protected
array<string, mixed>
默认配置
-
$_registry protected
Cake\Controller\ComponentRegistry
组件注册类,用于延迟加载组件。
-
$componentInstances protected
array<string,Cake\Controller\Component>
已加载的组件实例。
-
$components protected
数组
此组件使用的其他组件。
方法摘要
-
__construct() public
构造函数
-
__debugInfo() public
返回一个数组,可用于描述此对象的内部状态。
-
__get() public
$components 的延迟加载的魔术方法。
-
_configDelete() protected
删除单个配置键。
-
_configRead() protected
读取配置键。
-
_configWrite() protected
写入配置键。
-
_getSessionId() protected
获取 FormProtector 的会话 ID,必须与 FormHelper 中的一致
-
configShallow() public
将提供的配置与现有配置合并。与
config()
对嵌套键进行递归合并不同,此方法进行简单合并。 -
executeCallback() protected
执行回调。
-
getConfig() public
返回配置。
-
getConfigOrFail() public
返回此特定键的配置。
-
getController() public
获取绑定此组件的控制器。
-
implementedEvents() public
此组件支持的事件。
-
initialize() public
构造函数挂钩方法。
-
log() public
将消息写入日志的便捷方法。有关写入日志的更多信息,请参阅 Log::write()。
-
setConfig() public
设置配置。
-
startup() public
组件启动。
-
validationFailure() protected
抛出 400 - 错误请求异常或调用自定义回调。
方法详情
__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 要读取的键。
返回
混合
_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 以递归合并,设置为 'shallow' 以进行简单合并,设置为 false 以覆盖,默认值为 false。
返回
void
抛出
Cake\Core\Exception\CakeException
如果尝试覆盖现有的配置
_getSessionId() ¶ protected
_getSessionId(): string
获取 FormProtector 的会话 ID,必须与 FormHelper 中的一致
返回
字符串
configShallow() ¶ public
configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this
将提供的配置与现有配置合并。与 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
executeCallback() ¶ protected
executeCallback(Closure $callback, Cake\Http\Exception\BadRequestException $exception): Cake\Http\Response|null
执行回调。
参数
-
Closure
$callback 回调
-
Cake\Http\Exception\BadRequestException
$exception 异常实例。
返回
Cake\Http\Response|null
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 键不存在时的返回值。
返回
混合
getConfigOrFail() ¶ public
getConfigOrFail(string $key): mixed
返回此特定键的配置。
此键的配置值必须存在,不能为 null。
参数
-
string
$key 要获取的键。
返回
混合
抛出
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 optional 错误级别。
-
array|string
$context optional 与此消息相关的其他日志数据。
返回
布尔值
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 optional 是否递归合并或覆盖现有配置,默认为 true。
返回
$this
抛出
Cake\Core\Exception\CakeException
尝试设置无效键时。
startup() ¶ public
startup(Cake\Event\EventInterfaceCake\Controller\Controller> $event): Cake\Http\Response|null
组件启动。
令牌检查在此处进行。
参数
-
Cake\Event\EventInterfaceCake\Controller\Controller>
$event 一个事件实例
返回
Cake\Http\Response|null
validationFailure() ¶ protected
validationFailure(Cake\Form\FormProtector $formProtector): Cake\Http\Response|null
抛出 400 - 错误请求异常或调用自定义回调。
如果指定了 validationFailureCallback
配置,它将通过执行将参数作为异常传递的方法来使用此回调。
参数
-
Cake\Form\FormProtector
$formProtector 表单保护器实例。
返回
Cake\Http\Response|null
抛出
Cake\Http\Exception\BadRequestException
属性详情
$_defaultConfig ¶ protected
默认配置
validate
- 是否验证请求主体/数据。设置为 false 以禁用来自第三方服务等的数据。unlockedFields
- 要从验证中排除的表单字段。字段可以在组件中或使用 FormHelper::unlockField() 解锁。已解锁的字段不需要是 POST 的一部分,并且隐藏的解锁字段不会检查其值。unlockedActions
- 要从 POST 验证检查中排除的操作。validationFailureCallback
- 验证失败时要调用的回调。必须是有效的闭包。默认情况下未设置,在这种情况下,验证失败时会抛出异常。
类型
array<string, mixed>