/** * @param ContainerBuilder $container * @param string $contextId * @param string $definitionName * @param array $config * * @return Definition * * @throws InvalidDefinitionException */ public function buildDefinition(ContainerBuilder $container, $contextId, $definitionName, array &$config) { $this->parameterValidator->validateParameters($contextId, $config); if (isset($config[self::SERVICE_PARAMETER])) { return $this->buildFromService($container, $definitionName, $config[self::SERVICE_PARAMETER]); } return $this->buildFromClass($container, $definitionName, $config[self::CLASS_PARAMETER]); }
/** * {@inheritdoc} */ protected function processParam($contextId, array &$paramConfig, ContainerBuilder $container) { $config = $paramConfig[self::SEARCHER_PARAMETER]; $this->parametersValidator->validateParameters($contextId, $config); if (isset($config[self::SERVICE_PARAMETER])) { return $this->createFromService($container, $contextId, $config); } $definition = new Definition($config[self::CLASS_PARAMETER]); $this->configureDefinition($definition, $container, $config, $contextId); $definition = $this->wrapDefinition($definition, $config); return $container->setDefinition($this->buildServiceName($contextId, self::SEARCHER_PARAMETER), $definition); }
/** * @expectedException \Symfony\Component\Config\Definition\Exception\InvalidDefinitionException * @expectedExceptionMessageRegExp /contextId/ */ public function testWrongValidation() { $validator = new ParametersValidator(); $config = []; $validator->validateParameters('contextId', $config); }