4 * This file is part of the Symfony package.
6 * (c) Fabien Potencier <fabien@symfony.com>
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Symfony\Component\DependencyInjection\Compiler;
14 use Symfony\Component\DependencyInjection\Definition;
15 use Symfony\Component\DependencyInjection\Exception\RuntimeException;
18 * Throws an exception for any Definitions that have errors and still exist.
20 * @author Ryan Weaver <ryan@knpuniversity.com>
22 class DefinitionErrorExceptionPass extends AbstractRecursivePass
27 protected function processValue($value, $isRoot = false)
29 if (!$value instanceof Definition || empty($value->getErrors())) {
30 return parent::processValue($value, $isRoot);
33 // only show the first error so the user can focus on it
34 $errors = $value->getErrors();
35 $message = reset($errors);
37 throw new RuntimeException($message);