mediawiki / validator
ParamProcessor库的MediaWiki包装器
Requires
- php: >=5.5.0
- param-processor/param-processor: ~1.1
Requires (Dev)
- data-values/common: ~1.0|~0.4.0|~0.3.1
README
The Validator MediaWiki扩展提供了参数处理框架,可以声明性地定义一组参数及其处理方式。它可以将此类声明与一组原始参数列表一起使用,并提供处理后的值。
此扩展提供的功能主要来自ParamProcessor库。
安装
您可以使用Composer下载并安装此包及其依赖项。或者,您可以直接克隆git仓库并自行加载。
Composer
要将此包添加为项目的本地依赖项,只需将mediawiki/validator
添加到项目的composer.json
文件中。以下是一个定义Validator 2.2依赖项的composer.json
文件的简单示例。
{
"require": {
"mediawiki/validator": "2.2.*"
}
}
手动
通过git或其他方式获取Validator代码,并获取所有依赖项。您可以在composer.json文件的"require"部分中找到依赖项列表。
只需在您的LocalSettings.php文件中加载此扩展即可。
wfLoadExtension( 'Validator' );
作者
Validator是由Jeroen De Dauw编写的,以支持Maps和Semantic MediaWiki。
发布说明
版本 2.2.5 (2021-04-16)
- 转换为ExtensionRegistry
- 已取消对MediaWiki 1.35以下版本的支持
版本 2.2.3 (2020-11-19)
- 翻译更新
- 修复了导致其他MediaWiki测试失败的损坏测试
- 现在支持与DataValues Common 1.x一起安装
版本 2.2.2 (2020-01-14)
- 翻译更新
- 现在支持与DataValues Common 0.4.x一起安装
版本 2.2.1 (2016-10-10)
- 将i18n注册移出wgExtensionFunctions
版本 2.2.0 (2016-10-09)
- 改进了初始化代码,以便在MediaWiki未加载时可以包含入口点
版本 2.1.0 (2016-10-09)
- 取消对MediaWiki 1.23以下版本的支持
- 取消对PHP 5.5以下版本的支持
版本 2.0.6 (2016-07-01)
- 添加了缺失的系统消息
- 翻译更新
- 修复了失败的测试(只有测试本身有问题)
版本 2.0.5 (2016-04-04)
- 翻译更新
- 现在已测试与PHP 7的兼容性
版本 2.0.4 (2014-06-25)
- 已将使用的ParamProcessor版本从~1.0.0更新到~1.1
版本 2.0.3 (2014-06-16)
- 删除了过时的国际化文件
版本 2.0.2 (2014-06-14)
- 修复了已弃用的ParserHook类中的问题
版本 2.0.1 (2014-06-14)
- 删除了#listerrors和#describe解析钩子
版本 2.0 (2014-06-14)
- 删除了已弃用的类别名
- 删除了已弃用的ParamProcessor.php入口点
- 使用基于composer的自动加载
- 添加了TravisCI和ScrutinizerCI集成
- 将最低MediaWiki版本从1.16更改为1.17
- 将消息迁移到新的MediaWiki i18n JSON格式
版本 1.0.1 (2014-03-25)
- 翻译更新
- 源代码的主要副本现在在GitHub上
版本 1.0(2013-11-21)
此版本主要是对许多内部API进行重新设计,旨在提高稳定性和对外暴露的更清晰的接口。
大多数代码已移动到新的ParamProcessor库,Validator扩展仅作为MediaWiki特定包装。
兼容性更改
- 现在需要ParamProcessor库,版本1.0或更高。
- 将最小MediaWiki版本从1.16更改为1.18。
- 完全兼容MediaWiki 1.20、1.21、1.22,以及与1.23的向前兼容。
- 增加了对PHP 5.4.x和PHP 5.5.x的兼容性。
- 取消了Validator 0.4.x参数定义的支持,包括Criteria和Manipulations。
弃用
- 弃用了ParserHook类。
- 弃用了描述解析器钩子。
- 弃用了listerrors解析器钩子。
版本 0.5.1(2012-11-21)
- 增加了对PHP 5.4的兼容性。
版本 0.5(2012-10-05)
兼容性更改
- 将最小MediaWiki版本从1.16更改为1.17。
- 完全兼容MediaWiki 1.19和MediaWiki 1.20,以及与1.21的向前兼容。
新特性
- 支持ParamDefinition对象的新轻量级数组定义。
- 添加了DimensionParam。
- 添加了ValidatorOptions类,其中可以将其实例传递给Validator以全局更改处理行为。最显著的新选项是'rawStringParameters',当设置为true(默认值)时,将期望字符串格式的值,当设置为false(新功能)时,将期望原生格式的值(即列表应该是实际的数组对象)。
改进
- 将Parameter拆分为Param和ParamDefinition类。
- ParamDefinition对象代表一个类型,并包含验证和处理值的逻辑。
- Param对象持有ParamDefinition、用户提供的值和处理状态。
- 为一些ParamDefinition对象添加了新的选项,这些选项在早期的criteria和manipulation对象中不可用。
- 为所有ParamDefinition对象添加了测试。
- 为Validator添加了高级测试,并为ValidatorOptions添加了测试。
弃用
- 弃用Parameter(及其派生)类。
- 弃用ParameterCriterion(及其派生)类。
- 弃用ParameterManipulation(及其派生)类。
- 弃用了Validator类的构造方法。
版本 0.4.14(2012-03-10)
- 新增内置参数类型'title'。接受现有和非现有页面的标题,这些标题在维基中是有效的。
版本 0.4.13(2011-11-30)
-
ParserHook::$parser现在是对原始解析器对象的引用,正如人们所预期的。在此之前,这仅适用于标签扩展,而不是解析器函数调用。
-
如果SFH_OBJECT_ARGS并且因此对象解析器函数参数在Validator使用的MW版本中可用,则ParserHook::$frame将不再为null。因此,引入了新的函数ParserHook::renderFunctionObj(),用于处理这些SFH_OBJECT_ARGS钩子。
-
ParserHook构造函数现在接受一个位字段,用于为注册的钩子定义更进一步的定制。第一个选项可以通过ParserHook::FH_NO_HASH设置,以定义函数钩子应该在不带前导哈希的情况下可调用(例如"{{plural:...}}"样式)。
-
未命名参数处理选项现在可以在没有命名回退的情况下工作。这允许完全忽略参数值中的'=',然后必须在这些命名参数之前设置这些参数。有关详细信息,请参阅Validator::setFunctionParams()和ParserHook::getParameterInfo()。
-
ParserHook验证消息现在将在全局内容语言中输出文本,而不是用户界面语言。
版本 0.4.12(2011-10-15)
- 在describe解析器钩子中修复了国际化问题。
版本 0.4.11(2011-09-14)
- 修复了Parameter::getDescription中的兼容性回退。
- 修复了ParameterInput中列表参数的处理。
版本 0.4.10(2011-08-04)
- 添加了语言参数,用于描述允许设置生成文档的lang。
- 为ParserHook类添加了getMessage方法,以实现更好的国际化。
版本0.4.9 (2011-07-30)
- 为Parameter类添加了setMessage和getMessage方法,以实现更好的国际化。
版本0.4.8 (2011-07-19)
- 为标准添加了单元测试。
- 修复了在CriterionInRange中处理浮点数的问题。
- 添加了对CriterionHasLength和CriterionItemCount中开放极限的支持。
版本0.4.7 (2011-05-15)
- 根据SMws Special:Ask中的代码,添加了ParameterInput类以生成参数的HTML输入。
- 为Parameter::setDefault添加了第二个参数"$manipulate = true",该参数传递给Parameter::setDoManipulationOfDefault。
- 布尔操作现在忽略已经是布尔值的值。
版本0.4.6 (2011-03-21)
- 删除了ParamManipulationBoolstr。
- 为CriterionInArray添加了获取允许值的方法。
- 当布尔参数默认为布尔值时,自动不使用布尔操作。
- 在ListParameter::setDefault中对参数进行了修复,是对0.4.5版本更改的后续。
版本0.4.5 (2011-03-05)
- 修复了describe解析器挂钩中的转义问题。
- 添加了字符串操作,默认应用于字符串和字符。
版本0.4.4 (2011-02-16)
- 调整了ParserHook类中的解析器使用。
- 修复了describe解析器挂钩中嵌套pre标签的错误输出。
版本0.4.3.1 (2011-01-20)
- 删除了标签扩展和解析器函数的下划线和空格切换行为。
版本0.4.3 (2011-01-11)
- 添加了describe解析器挂钩,该挂钩可以通过Validator自动生成解析器挂钩的文档。
- 修改了ParserHook和Parameter类,允许指定描述消息。
版本0.4.2 (2010-10-28)
- 修复了与MediaWiki 1.15.x的兼容性问题。
- 在Parameter类中删除了lowerCaseValue字段,并使用ParameterManipulation替换了其功能。
版本0.4.1 (2010-10-20)
- 进行了多项小的修复和改进。
版本0.4 (2010-10-15)
新特性
- 添加了ParserHook类,允许使用完整的Validator支持创建开箱即用的解析器函数和标签扩展。
- 添加了listerrors解析器挂钩,允许列出在渲染点发生的所有验证错误。
- 添加了对条件参数添加的支持。
重构
基本上所有的东西都被重写了...
- 添加了Parameter和ListParameter类来替换数组形式的参数定义。
- 添加了ParameterCriterion和ListParameterCriterion类以更好地处理参数标准。
- 添加了ParameterManipulation和ListParameterManipulation类以实现参数的更结构化格式化。
- 添加了ValidationError类以更好地描述错误。
- 用ValidationError::SEVERITY_和ValidationError::ACTION_替换了错误级别枚举,它们与$egErrorActions相关联。
版本0.3.6 (2010-08-26)
- 在参数信息定义中添加了对'tolower'参数的支持。
版本0.3.5 (2010-07-26)
- 修复了错误消息中原始参数名(在某些情况下也包括值)的问题。
版本0.3.4 (2010-07-07)
- 修复了在php 5.3及以后版本中出现的参数引用问题。
- 修复了导致参数名在错误消息中显示错误的转义问题。
- 修复了参数值修剪的小问题,该问题在使用对象时引起问题。
版本0.3.3 (2010-06-20)
- 修复了在某些情况下使用ValidatorManager::manageParsedParameters方法时引起的通知问题。
版本0.3.2 (2010-06-07)
- 对参数名添加了小写处理,并且可选地(默认为开启),对参数值也进行小写处理。
- 当作为命名参数使用时,从默认参数队列中删除默认参数。
版本0.3.1 (2010-06-04)
- 添加了ValidatorManager::manageParsedParameters和Validator::setParameters。
版本0.3 (2010-05-31)
- 添加了对通用默认参数的支持。
- 添加了对参数依赖性的支持。
- 添加了对验证和格式化函数的完整元数据支持,使参数的更高级处理成为可能。
- 对代码进行了重大重构,以符合MediaWiki约定。
版本0.2.2 (2010-03-01)
- 修复了固定潜在xss攻击向量。
- 进行了微小的代码改进。
版本 0.2.1 (2010-02-01)
- 更改了范围验证函数的上限包含。
- 进行了小的语言修正。
版本 0.2 (2009-12-25)
- 增加了对类型列表的处理,而不是将列表作为类型。这包括每个元素的验证和默认值。
- 增加了列表验证函数:item_count 和 unique_items
- 增加了布尔型、数字型和字符型。
- 增加了对输出类型的支持。内置的输出类型有列表、数组、布尔型和字符串。通过钩子可以添加自己的输出类型。
- 为 $egValidatorErrorLevel 添加了 Validator_ERRORS_MINIMAL 值。
- 为 ValidatorManager 添加了警告消息,当 egValidatorErrorLevel 为 Validator_ERRORS_WARN 时将显示错误。
- 增加了对 is_boolean、has_length 和 regex 的条件支持。
版本 0.1 (2009-12-17)
- 初始发布,包含参数验证、默认值和错误生成功能。