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

Vytvorené 3y | 12. 11. 2021, 10:20:18


Ak chcete pridať komentár, prihláste sa

Ostatné príspevky v tejto skupine

SymfonyLive Paris 2025 :  Async avec Messenger, AMQP et Mercure

SymfonyLive Paris 2025, conference in French language only, will take place from March 27 to 28! The schedule is currently being revealed as we go along. More details are available here. 🚨 Tod

26. 2. 2025, 14:31:31 | Symfony
Symfony 6.4.19 released

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

bug #59198 [Messenger] Filter out non-consumable receivers when registering ConsumeMessagesComm
26. 2. 2025, 12:20:03 | Symfony
Symfony 7.2.4 released

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

bug #59198 [Messenger] Filter out non-consumable receivers when registering ConsumeMessagesComman
26. 2. 2025, 12:20:03 | Symfony
Just one month to go before SymfonyLive Paris 2025 workshops begin!

SymfonyLive Paris 2025, conference in French language only, will already start in 1 month with the workshops! Have a look on the topics and join us! Schedule details are available here.

📣

25. 2. 2025, 15:20:33 | Symfony
New Core Team Members, 2025 Edition

A few weeks ago, I had the pleasure of announcing the formation of the Symfony UX Core Team, a dedicated group working to enhance the frontend development experience within the Symfony ecosystem. Toda

24. 2. 2025, 16:20:03 | Symfony
SymfonyLive Paris 2025 : Du lego de composants pour un bundle Gotenberg !

SymfonyLive Paris 2025, conference in French language only, will take place from March 27 to 28! The schedule is currently being revealed as we go along. More details are available here.

Al

24. 2. 2025, 13:50:07 | Symfony
A Week of Symfony #947 (17-23 February 2025)

This week, development activity focused on new security features. The upcoming Symfony 7.3 version added support for security voters to explain their vote, improved the IsGranted attribute to allow us

23. 2. 2025, 10:10:09 | Symfony