Manual validation of an object with the Symfony validator component
Published on 2023-08-09 • Modified on 2023-08-09
In a previous snippet, we saw how to validate an array using the existing validator service manually. In this snippet, we manually create a validator service, and then we validate an object containing validation assertions with attributes like #[Assert\NotBlank]
.
<?php
declare(strict_types=1);
namespace App\Controller\Snippet;
use App\Samples\ProductSample;
use Symfony\Component\Validator\ConstraintViolation;
use Symfony\Component\Validator\Validation;
/**
* I am using a PHP trait to isolate each snippet in a file.
* This code should be called from a Symfony controller extending AbstractController (as of Symfony 4.2)
* or Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
* Services are injected in the main controller constructor.
*/
trait Snippet267Trait
{
public function snippet267(): void
{
$validator = Validation::createValidatorBuilder()
->enableAttributeMapping()
->getValidator();
$product = new ProductSample();
/** @var ConstraintViolation $violations */
$violations = $validator->validate($product);
echo 'Violations: '.PHP_EOL.$violations;
// That's it! 😁
}
}
Run this snippet More on Stackoverflow More on the web Random snippet