aight8/draft-php-validator

一个验证和清理 ContentState 的库

dev-master 2017-01-11 05:12 UTC

This package is not auto-updated.

Last update: 2024-09-23 14:02:48 UTC


README

一个构建在 draft-php 库之上的验证库。

Latest Version on Packagist Software License Build Status Total Downloads

该库通过给定配置验证内容状态。

可选:如果可能,还可以自动修复无效的内容状态。

功能

验证块深度
  • 在目标块类型上可能(自动修复:设置为 0)
  • 以增量步骤增加深度(自动修复:设置为最后一个有效深度)
  • 最大深度(自动修复:设置为最大深度)
仅允许特定的...
  • 内容块类型(自动修复:设置为默认块类型)
  • 实体类型(自动修复:从 ContentBlock 和 EntityMap 中删除)
  • 内联样式(自动修复:从 ContentBlock 中删除)
当设置...
  • 字符计数(无自动修复)
  • 单词计数(无自动修复)
  • 行计数(无自动修复)
ContentBlock
  • 没有换行符 - 在 draft.js 中称为软换行(自动修复:分割块)
CharacterMetadata
  • 实体必须引用实体映射中存在的实体(自动修复:从 ContentBlock 中删除)
EntityMap
  • 未引用的实体(自动修复:从 EntityMap 中删除)
  • 验证实体数据(自动修复:过滤实体数据)

更多功能

  • 正确处理 Unicode 字符
  • 包含 draft.js 默认值(块类型、内联样式、列表块类型)

使用方法

ValidatorConfig 的默认配置是懒惰的,仅包含最基本的内容。

ValidatorConfig 类

public function __construct(array $config = null)

传递的配置数组可以包含以下选项

content_block_typesinline_stylesentity_typesblock_types_with_depth都具有默认值(draft.js 中的默认常量)。

  • 如果这些值中的任何一个设置为 null,则一切都被允许。
  • 如果这些值中的任何一个设置为 [],则什么都不允许。

Validator 类

相关的验证函数是此函数

public function validate(ContentState $contentState, $validatorConfig = null, $tryAutoFix = null)

如果第三个参数 tryAutoFix 为 true,则自动修复所有无效捕获。 但字符/单词/行限制除外! 这将始终抛出异常。

如果 tryAutoFix 为 false,则它始终在第一个无效捕获上抛出异常。

默认情况下启用自动修复,因为这是最常见的用例。

未来

  • 可选自动修复最大字符/单词/行计数,通过重叠时缩小,但这不是默认设置,因为数据丢失永远不应该成为默认设置。然而,这些限制检查应该首先在客户端实现!这是一个安全检查。