toshy/validation-bundle 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

toshy/validation-bundle

最新稳定版本:2.2.0

Composer 安装命令:

composer require toshy/validation-bundle

包简介

Additional Symfony validators.

README 文档

README

Additional validators set for Symfony 6/7/8

This is a fork from secit-pl/validation-bundle.

Installation

From the command line run

$ composer require toshy/validation-bundle

Validators

NotBlankIf

This validator checks if value is not blank like a standard NotBlank Symfony validator, but also allows define the condition when the NotBlank validation should be performed using Symfony Expression Language.

From Symfony 6.2 you can also use When validator.

https://symfony.com/blog/new-in-symfony-6-2-conditional-constraints

https://symfony.com/doc/6.2/reference/constraints/When.html

Example usage

use SecIT\ValidationBundle\Validator\Constraints as SecITAssert;

// ...

#[SecITAssert\NotBlankIf("this.isSuperUser")]
private ?string $email = null;

public function isSuperUser(): bool
{
    return true;
}

Parameters

Parameter Type Default Description
expression string empty array The expression that will be evaluated. If the expression evaluates to a false value (using ==, not ===), not blank validation won't be performed)
values array empty array The values of the custom variables used in the expression. Values can be of any type (numeric, boolean, strings, null, etc.)

FileExtension

This validator checks if file has valid file extension.

From Symfony 6.2 you can also use the "extensions" option in File validator.

https://symfony.com/blog/new-in-symfony-6-2-improved-file-validator

https://symfony.com/doc/6.2/reference/constraints/File.html#extensions

Example usage

use SecIT\ValidationBundle\Validator\Constraints as SecITAssert;

// ...

#[SecITAssert\FileExtension(["jpg", "jpeg", "png"])]
private $file;
use SecIT\ValidationBundle\Validator\Constraints as SecITAssert;

// ...

#[SecITAssert\FileExtension(disallowedExtensions: ["jpg", "jpeg", "png"])]
private $file;

Parameters

Parameter Type Default Description
validExtensions array empty array Allowed/valid file extensions list
disallowedExtensions array empty array Disallowed/invalid file extensions list
matchCase bool false Enable/disable verifying the file extension case

Caution! It's highly recommended to use this validator together with native Symfony File/Image validator.

use SecIT\ValidationBundle\Validator\Constraints as SecITAssert;
use Symfony\Component\Validator\Constraints as Assert;

// ...

#[Assert\Image(maxSize: '2M', mimeTypes: ["image/jpg", "image/jpeg", "image/png"])]
#[SecITAssert\FileExtension(validExtensions: ["jpg", "jpeg", "png"])]
private $file;

CollectionOfUniqueElements

Checks if collection contains only unique elements.

Parameters

Parameter Type Default Description
matchCase bool false Enable/disable verifying the characters case
customNormalizationFunction null or callable null Custom normalization function
use SecIT\ValidationBundle\Validator\Constraints as SecITAssert;

// ...

#[SecITAssert\CollectionOfUniqueElements()]
private $collection;

This validator can also be used to validate unique files upload.

<?php

declare(strict_types=1);

namespace App\Form;

use SecIT\ValidationBundle\Validator\Constraints\CollectionOfUniqueElements;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\FormBuilderInterface;

class ExampleType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('files', CollectionType::class, [
            'entry_type' => FileType::class,
            'allow_add' => true,
            'constraints' => [
                new CollectionOfUniqueElements(),
            ],
        ]);
    }
}

AntiXss

Checks if text contains XSS attack using voku\anti-xss library.

use SecIT\ValidationBundle\Validator\Constraints as SecITAssert;

// ...

#[SecITAssert\AntiXss()]
private $text;

NaiveNoHtml

Perform very naive check if text contains HTML.

use SecIT\ValidationBundle\Validator\Constraints as SecITAssert;

// ...

#[SecITAssert\NaiveNoHtml()]
private $text;

Parameters

Parameter Type Default Description
strongValidation bool true (recommended) Enable/disable strong validation. Disable if you'd like to allow strings with unclosed tags such as as "I <3 You".

BurnerEmail

Checks if email address is a throw away email addresses (burner email). This check is perform against the list provided by wesbos/burner-email-providers. You need to install this package manually (composer require wesbos/burner-email-providers) if you'd like to use this validator.

use SecIT\ValidationBundle\Validator\Constraints as SecITAssert;

// ...

#[SecITAssert\BurnerEmail()]
private $email;

统计信息

  • 总下载量: 6.21k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-12-23

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固