portrino/px_validation

通过TypoScript实现的Extbase验证

安装: 677

依赖: 0

建议者: 0

安全: 0

星星: 2

关注者: 7

分支: 1

开放问题: 0

类型:typo3-cms-extension

4.0.0 2024-09-24 09:14 UTC

README

TYPO3 12 Latest Stable Version Total Downloads Monthly Downloads License CI

通过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 设置

  1. 包含扩展的静态TypoScript。
  2. 在您的“site_package”扩展中创建一些TypoScript,以覆盖其他扩展的验证规则
    1. 以下为示例

示例

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 作者

  • 请参阅参与此项目的贡献者列表。