* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\DependencyInjection\Compiler; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Exception\RuntimeException; /** * Throws an exception for any Definitions that have errors and still exist. * * @author Ryan Weaver */ class DefinitionErrorExceptionPass extends AbstractRecursivePass { /** * {@inheritdoc} */ protected function processValue($value, $isRoot = false) { if (!$value instanceof Definition || empty($value->getErrors())) { return parent::processValue($value, $isRoot); } // only show the first error so the user can focus on it $errors = $value->getErrors(); $message = reset($errors); throw new RuntimeException($message); } }