public function process(ContainerBuilder $container) { $serviceDefinitions = $container->getDefinitions(); $validatorFactory = new ServiceDefinitionValidatorFactory($this->configuration); $validator = $validatorFactory->create($container); $batchValidator = new BatchServiceDefinitionValidator($validator, new ValidationErrorFactory()); $errorList = $batchValidator->validate($serviceDefinitions); if (count($errorList) === 0) { return; } $errorListPrinter = new SimpleErrorListPrinter(); $message = $errorListPrinter->printErrorList($errorList); throw new InvalidServiceDefinitionsException($message); }
/** * Validates the definitions in the provided container and returns a list of errors. * * @param ContainerBuilder $container * @return ValidationErrorList */ protected function validateContainer(ContainerBuilder $container) { $validatorFactory = new ServiceDefinitionValidatorFactory(); $validator = $validatorFactory->create($container); $errors = new ValidationErrorList(); foreach ($container->getDefinitions() as $serviceId => $definition) { try { $validator->validate($definition); return $errors; } catch (\Exception $exception) { $error = new ValidationError($serviceId, $definition, $exception); $errors->add($error); } } return $errors; }