aight8 / draft-php-validator
一个验证和清理 ContentState 的库
dev-master
2017-01-11 05:12 UTC
Requires
- php: ^7.0
- webstronauts/draft-php: dev-master@dev
Requires (Dev)
- phpspec/phpspec: ^3.0
This package is not auto-updated.
Last update: 2024-09-23 14:02:48 UTC
README
一个构建在 draft-php 库之上的验证库。
该库通过给定配置验证内容状态。
可选:如果可能,还可以自动修复无效的内容状态。
功能
验证块深度
- 在目标块类型上可能(自动修复:设置为 0)
- 以增量步骤增加深度(自动修复:设置为最后一个有效深度)
- 最大深度(自动修复:设置为最大深度)
仅允许特定的...
- 内容块类型(自动修复:设置为默认块类型)
- 实体类型(自动修复:从 ContentBlock 和 EntityMap 中删除)
- 内联样式(自动修复:从 ContentBlock 中删除)
当设置...
- 字符计数(无自动修复)
- 单词计数(无自动修复)
- 行计数(无自动修复)
ContentBlock
- 没有换行符 - 在 draft.js 中称为软换行(自动修复:分割块)
CharacterMetadata
- 实体必须引用实体映射中存在的实体(自动修复:从 ContentBlock 中删除)
EntityMap
- 未引用的实体(自动修复:从 EntityMap 中删除)
- 验证实体数据(自动修复:过滤实体数据)
更多功能
- 正确处理 Unicode 字符
- 包含 draft.js 默认值(块类型、内联样式、列表块类型)
使用方法
ValidatorConfig 的默认配置是懒惰的,仅包含最基本的内容。
ValidatorConfig 类
public function __construct(array $config = null)
传递的配置数组可以包含以下选项
content_block_types
、inline_styles
、entity_types
、block_types_with_depth
都具有默认值(draft.js 中的默认常量)。
- 如果这些值中的任何一个设置为
null
,则一切都被允许。 - 如果这些值中的任何一个设置为
[]
,则什么都不允许。
Validator 类
相关的验证函数是此函数
public function validate(ContentState $contentState, $validatorConfig = null, $tryAutoFix = null)
如果第三个参数 tryAutoFix
为 true,则自动修复所有无效捕获。 但字符/单词/行限制除外! 这将始终抛出异常。
如果 tryAutoFix
为 false,则它始终在第一个无效捕获上抛出异常。
默认情况下启用自动修复,因为这是最常见的用例。
未来
- 可选自动修复最大字符/单词/行计数,通过重叠时缩小,但这不是默认设置,因为数据丢失永远不应该成为默认设置。然而,这些限制检查应该首先在客户端实现!这是一个安全检查。