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

  Work with me!


Call to action

Did you like this post? You can help me back in several ways: (use the "reply" link on the right to comment or to contact me )

Thank you for reading! And see you soon on Strangebuzz! 😉

COil