This package is deprecated. Use Kdyby/Validator instead.
Via Composer:
$ composer require symnedi/validator
Register the extension in config.neon
:
extensions:
- Symnedi\Validator\DI\ValidatorExtension
- Kdyby\Annotations\DI\AnnotationsExtension
Let's register user, but only while having valid email.
First, use validation annotations on entity (object) you want to validate.
use Symfony\Component\Validator\Constraints as Assert;
class User
{
/**
* @Assert\NotBlank
* @Assert\Email
*/
private $email;
/**
* @var string $email
*/
public function __construct($email)
{
$this->email = $email;
}
}
Then validate in our service:
use Symfony\Component\Validator\Validator\ValidatorInterface;
class RegistrationManager
{
/**
* @var ValidatorInterface
*/
private $validator;
public function __construct(ValidatorInterface $validator)
{
$this->validator = $validator;
}
/**
* Instance is passed: $user = new User('invalid.email');
*/
public function registerUser(User $user)
{
$violations = $this->validator->validate($user);
// process violations
$violation = $violations[0];
$violation->getMessage(); // 'Email is not valid.'
}
}
That's it!
For detailed usage, check Symfony documentation.
$ phpunit
Please see CONTRIBUTING for details.