proklung / bitrix-iblock-element-validator-bundle
用于通过属性验证Bitrix元素的Symfony扩展包
1.0.1
2021-08-08 16:06 UTC
Requires
- php: >=7.1 | 8.0
- illuminate/translation: ~6 | ~7 | ~8
- illuminate/validation: ~6 | ~7 | ~8
- symfony/config: ^4.4 || ^5.0
- symfony/dependency-injection: ^4.4 || ^5.0
- symfony/http-kernel: ^4.4 || ^5.0
- waavi/sanitizer: ^1.0
This package is auto-updated.
Last update: 2024-09-08 23:01:39 UTC
README
安装
composer require proklung/bitrix-iblock-element-validator-bundle
工作原理
验证器
实现了接口 Prokl\BitrixIblockElementValidatorBundle\Services\Contracts\BitrixPropertyValidatorInterface
.
方法
setPropertyCode(string $code)
- 设置要验证的属性的符号代码validate($value)
- 验证。如果值正确,返回true,否则返回falsesetErrorMessage(string $errorMessage)
- 设置验证错误消息setIdIblock(int $idIblock)
- 信息块的ID。
为了方便,有一个类 Prokl\BitrixIblockElementValidatorBundle\Services\AbstractBitrixPropertyValidator
自动包含接口的setter。
验证器示例
use Prokl\BitrixIblockElementValidatorBundle\Services\Exceptions\ValidateErrorException; class ExampleCustomValidator extends AbstractBitrixPropertyValidator { public function __construct(string $errorMessage) { $this->errorMessage = $errorMessage; } /** * @inheritDoc */ public function validate($value): bool { if ($value === 'funt@mail.ru') { throw new ValidateErrorException( $this->errorMessage ); } return true; } }
容器配置中的每个验证器都带有 bitrix_iblock_element_validator.custom_validator
标签。键是服务名称。
例如
bitrix_iblock_element_validator.example_custom_validator: class: Prokl\BitrixIblockElementValidatorBundle\Services\ExampleCustomValidator arguments: ['Кастомная ошибка: забаненый email'] tags: - { name: bitrix_iblock_element_validator.custom_validator, key: bitrix_iblock_element_validator.example_custom_validator }
包含的验证器
bitrix_iblock_element_validator.unique_validator
- 检查元素的唯一性。不允许保存已在数据库中存在的给定属性的值。
包配置
文件 /local/config/packages/bitrix_iblock_element_validator.yaml
.
bitrix_iblock_element_validator: enabled: true iblocks: ##################################################### # Определение валидации свойства code_property # инфоблока id_iblock. # optional_validator - опциональный сервис валидации. ###################################################### field_email_validator: id_iblock: 1 sanitize: '' # Правило санации code_property: EMAIL rule: 'required|string|min:12' # Правило валидации согласно принципам Laravel Validator error_message: '#FIELD_NAME#: должна быть строка, не менее двенадцати символов длиной.' optional_validator: bitrix_iblock_element_validator.example_custom_validator field_phone_validator: id_iblock: 1 code_property: Phone sanitize: '' rule: 'string|min:5' # Правило валидации согласно принципам Laravel Validator error_message: '#FIELD_NAME#: должна быть строка, не менее пяти символов длиной.' optional_validator: ~ field_email_validator_unique: id_iblock: 1 code_property: EMAIL optional_validator: bitrix_iblock_element_validator.unique_validator field_text_validator: id_iblock: 1 code_property: TEXT sanitize: 'trim|escape|strip_tags|cast:string' # Правило санации