portrino / px_validation
通过TypoScript实现的Extbase验证
4.0.0
2024-09-24 09:14 UTC
Requires
- typo3/cms-extbase: ^12.4
Requires (Dev)
- ergebnis/composer-normalize: ^2.28
- friendsofphp/php-cs-fixer: ^3.14
- friendsoftypo3/phpstan-typo3: ^0.9
- helmich/typo3-typoscript-lint: ^3.1
- php-coveralls/php-coveralls: ^2.5
- phpstan/phpstan: ^1.10
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-strict-rules: ^1.5
- seld/jsonlint: ^1.9
- typo3/coding-standards: ^0.6
Replaces
- typo3-ter/px-validation: *
This package is auto-updated.
Last update: 2024-09-24 09:55:40 UTC
README
通过TypoScript控制/覆盖TYPO3扩展的Extbase验证
1 功能
PxValidation扩展允许您在TypoScript中为每个Extbase-Controller-Action
定义不同的验证配置,而不需要修改受影响的扩展本身。这使得更改供应商扩展的默认验证行为变得容易,而无需更改其代码。但最大的好处是,它打开了在一个页面树中声明多个验证规则变体的选项。甚至可以嵌套验证规则,这样就可以验证子对象。
2 使用
2.1 安装
使用Composer安装
安装此扩展的**推荐**方法是使用Composer。
在您的基于Composer的TYPO3项目中运行以下命令
composer require portrino/px_validation
从TYPO3扩展仓库(TER)安装为扩展
使用扩展管理模块下载并安装扩展。
2.2 设置
- 包含扩展的静态TypoScript。
- 在您的“site_package”扩展中创建一些TypoScript,以覆盖其他扩展的验证规则
- 以下为示例
示例
PHP
namespace VendorName\ExtensionName\Controller;
class FooController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
/**
* action create
*
* @param \VendorName\ExtensionName\Domain\Model\FooBar $fooBar
* @return void
*/
public function createAction(\VendorName\ExtensionName\Domain\Model\FooBar $fooBar) {
...
}
}
TypoScript
plugin.tx_pxvalidation.settings {
VendorName\ExtensionName\Controller\FooController {
actionMethodName {
fooBar {
# (default 0) if 1, then the validation rules defined in the property, model or controller are NOT executed
overwriteDefaultValidation = 1
objectValidators {
0 = @TYPO3\CMS\Extbase\Annotation\Validate("VendorName\ExtensionName\Domain\Validator\FooValidator", options={"firstOption": value1, "secondOption": 123456})
1 = @TYPO3\CMS\Extbase\Annotation\Validate("VendorName\ExtensionName\Domain\Validator\BarValidator", options={"firstOption": value1})
}
propertyValidators {
foo {
0 = @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty")
}
bar {
0 = @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty")
1 = @TYPO3\CMS\Extbase\Annotation\Validate("StringLength", options={"minimum": 3, "maximum": 50})
2 = @TYPO3\CMS\Extbase\Annotation\Validate("VendorName\ExtensionName\Domain\Validator\CustomValidator", options={"firstOption": value1})
}
childObject {
propertyValidators {
subProperty1 {
0 = @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty")
}
subProperty2 {
0 = @TYPO3\CMS\Extbase\Annotation\Validate("NotEmpty")
}
#...
}
}
}
}
}
}
}
3 管理角
3.1 更新日志
请查阅扩展中的更新日志文件。
3.2 版本管理
PxValidation使用语义版本控制,这意味着:
- 错误修复更新(例如,1.0.0 => 1.0.1)仅包括小错误修复或与安全相关的内容,没有破坏性更改,
- 次要更新(例如,1.0.0 => 1.1.0)包括新功能和较小的任务,没有破坏性更改,
- 以及**主要更新**(例如,1.0.0 => 2.0.0)破坏性更改,可能是重构、功能或错误修复。
3.3 贡献
欢迎**拉取请求**!然而,请不要忘记添加一个问题和将其与您的拉取请求关联。这将非常有帮助,以便理解PR
将要解决的问题。
错误修复:请描述您的修复解决了什么类型的错误,并告诉我们如何重现该问题。我们只接受我们可以重现的错误修复。
4 作者
- 请参阅参与此项目的贡献者列表。