EventListener/ValidationListener.php
<?php
declare(strict_types=1);
/*
* This file is part of the Superdesk Web Publisher Bridge Bundle.
*
* Copyright 2017 Sourcefabric z.ú. and contributors.
*
* For the full copyright and license information, please see the
* AUTHORS and LICENSE files distributed with this source code.
*
* @copyright 2017 Sourcefabric z.ú
* @license http://www.superdesk.org/license
*/
namespace SWP\Bundle\BridgeBundle\EventListener;
use SWP\Bundle\BridgeBundle\Exception\ValidationException;
use Symfony\Component\EventDispatcher\GenericEvent;
use Symfony\Component\Validator\Validator\ValidatorInterface;
final class ValidationListener
{
/**
* @var ValidatorInterface
*/
private $validator;
public function __construct(ValidatorInterface $validator)
{
$this->validator = $validator;
}
public function onValidation(GenericEvent $event)
{
if (0 < count($violations = $this->validator->validate($event->getSubject()))) {
throw new ValidationException($violations);
}
}
}