New in Symfony 5.4: New Validation Constraints

The Symfony Validator component provides tens of validators to validate that a given value matches some expected constraints (e.g. not blank, being a valid IP address, being a string shorter than 255 characters, etc.) In Symfony 5.4 we've expanded that list with two new validators/constraints.

CIDR Validator

        Contributed by Sorin Pop 
        in #43593.

This checks that a value is a valid CIDR (Classless Inter-Domain Routing) notation. By default, it validates the CIDR's IP and netmask both for version 4 and 6, with the option of allowing only one type of IP version to be valid. It also supports a minimum and maximum range constraint in which the value of the netmask is valid.

    1

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 // src/Entity/RoutingTable.php namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class RoutingTable {

[Assert\Cidr]

protected $cidr;

#[Assert\Cidr(version: 6)]
protected $anotherCidr;

#[Assert\Cidr(netmaskMax: 20, version: 4)]
protected $yetAnotherCidr;

}

CssColor Validator

        Contributed by Mathieu Santostefano 
        in #40168.

CSS colors handling is common in applications like CMS and site builders. Checking that some given value is a valid CSS color (e.g. to allow users customize some themes) is not an easy feat because there are a lot of different ways to define a color in CSS. By default, this new constraint allows all the CSS color formats (RGB, HEX, HSL, named colors, keywords, etc.) but you can restrict the formats allowed:

    1

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 // src/Entity/ThemeColors.php namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class ThemeColors {

[Assert\CssColor]

protected $bodyBackgroundColor;

#[Assert\CssColor(
    formats: Assert\CssColor::HEX_LONG,
    message: 'The accent color must be a 6-character hexadecimal color.',
)]
protected $accentColor;

#[Assert\CssColor(
    formats: [Assert\CssColor::BASIC_NAMED_COLORS, Assert\CssColor::EXTENDED_NAMED_COLORS],
    message: 'The color '{{ value }}' is not a valid CSS color name.',
)]
protected $headerColor;

}

                Sponsor the Symfony project.

https://symfony.com/blog/new-in-symfony-5-4-new-validation-constraints?utm_source=Symfony%20Blog%20Feed&utm_medium=feed

Created 3y | Nov 12, 2021, 10:20:18 AM


Login to add comment

Other posts in this group

Symfony 2024 Year in Review

This blog post highlights the key accomplishments of the Symfony project in 2024. We are grateful for your continuous support, which enabled the Symfony project to achieve a remarkable year.

Releases

Jan 7, 2025, 1:40:05 PM | Symfony
A Week of Symfony #940 (30 December 2024 - 5 January 2025)

This week, Symfony 6.4.17, 7.1.10 and 7.2.2 maintenance versions were released. In addition, we published more information about the upcoming SymfonyOnline January 2025 conference.

Symfony developmen

Jan 5, 2025, 10:30:12 AM | Symfony
SymfonyOnline January 2025: Join us in 2 weeks!

Get ready for the exciting SymfonyOnline January 2025, kicking off shortly on January 16-17! There’s still time to register and join the international online Symfony conference—along with pre-

Jan 2, 2025, 12:50:08 PM | Symfony
Symfony 6.4.17 released

Symfony 6.4.17 has just been released. Here is the list of the most important changes since 6.4.16:

bug #59304 [PropertyInfo] Remove @internal from PropertyReadInfo and PropertyWriteInfo (Dario G
Dec 31, 2024, 4:50:11 PM | Symfony
Symfony 7.1.10 released

Symfony 7.1.10 has just been released. Here is the list of the most important changes since 7.1.9:

bug #59304 [PropertyInfo] Remove @internal from PropertyReadInfo and PropertyWriteInfo (Dario Gu
Dec 31, 2024, 4:50:10 PM | Symfony
Symfony 7.2.2 released

Symfony 7.2.2 has just been released. Here is the list of the most important changes since 7.2.1:

bug #59304 [PropertyInfo] Remove @internal from PropertyReadInfo and PropertyWriteInfo (Dario Gua
Dec 31, 2024, 4:50:10 PM | Symfony
A Week of Symfony #939 (23-29 December 2024)

This week, we launched the new Twig playground, a tool that lets you test and experiment with Twig features in a safe, sandboxed environment. While Symfony development activity was lighter than usual

Dec 29, 2024, 11:30:09 AM | Symfony