[FrameworkBundle] moved some validation related services to the XML services file
This commit is contained in:
parent
33add37f7c
commit
eb21f5b76e
@ -460,38 +460,15 @@ class FrameworkExtension extends Extension
|
||||
|
||||
$loader->load('validator.xml');
|
||||
|
||||
$xmlMappingFiles = array();
|
||||
$yamlMappingFiles = array();
|
||||
$container
|
||||
->getDefinition('validator.mapping.loader.xml_files_loader')
|
||||
->setArgument(0, $this->getValidatorXmlMappingFiles($container))
|
||||
;
|
||||
|
||||
// Include default entries from the framework
|
||||
$xmlMappingFiles[] = __DIR__.'/../../../Component/Form/Resources/config/validation.xml';
|
||||
|
||||
foreach ($container->getParameter('kernel.bundles') as $bundle) {
|
||||
$reflection = new \ReflectionClass($bundle);
|
||||
if (file_exists($file = dirname($reflection->getFilename()).'/Resources/config/validation.xml')) {
|
||||
$xmlMappingFiles[] = realpath($file);
|
||||
}
|
||||
if (file_exists($file = dirname($reflection->getFilename()).'/Resources/config/validation.yml')) {
|
||||
$yamlMappingFiles[] = realpath($file);
|
||||
}
|
||||
}
|
||||
|
||||
$xmlFilesLoader = new Definition('%validator.mapping.loader.xml_files_loader.class%', array($xmlMappingFiles));
|
||||
$xmlFilesLoader->setPublic(false);
|
||||
|
||||
$yamlFilesLoader = new Definition('%validator.mapping.loader.yaml_files_loader.class%', array($yamlMappingFiles));
|
||||
$yamlFilesLoader->setPublic(false);
|
||||
|
||||
$container->setDefinition('validator.mapping.loader.xml_files_loader', $xmlFilesLoader);
|
||||
$container->setDefinition('validator.mapping.loader.yaml_files_loader', $yamlFilesLoader);
|
||||
|
||||
foreach ($xmlMappingFiles as $file) {
|
||||
$container->addResource(new FileResource($file));
|
||||
}
|
||||
|
||||
foreach ($yamlMappingFiles as $file) {
|
||||
$container->addResource(new FileResource($file));
|
||||
}
|
||||
$container
|
||||
->getDefinition('validator.mapping.loader.yaml_files_loader')
|
||||
->setArgument(0, $this->getValidatorYamlMappingFiles($container))
|
||||
;
|
||||
|
||||
if (isset($config['annotations'])) {
|
||||
$namespaces = array('assert' => 'Symfony\\Component\\Validator\\Constraints\\');
|
||||
@ -513,6 +490,37 @@ class FrameworkExtension extends Extension
|
||||
}
|
||||
}
|
||||
|
||||
private function getValidatorXmlMappingFiles(ContainerBuilder $container)
|
||||
{
|
||||
$files = array(__DIR__.'/../../../Component/Form/Resources/config/validation.xml');
|
||||
$container->addResource(new FileResource($files[0]));
|
||||
|
||||
foreach ($container->getParameter('kernel.bundles') as $bundle) {
|
||||
$reflection = new \ReflectionClass($bundle);
|
||||
if (file_exists($file = dirname($reflection->getFilename()).'/Resources/config/validation.xml')) {
|
||||
$files[] = realpath($file);
|
||||
$container->addResource(new FileResource($file));
|
||||
}
|
||||
}
|
||||
|
||||
return $files;
|
||||
}
|
||||
|
||||
private function getValidatorYamlMappingFiles(ContainerBuilder $container)
|
||||
{
|
||||
$files = array();
|
||||
|
||||
foreach ($container->getParameter('kernel.bundles') as $bundle) {
|
||||
$reflection = new \ReflectionClass($bundle);
|
||||
if (file_exists($file = dirname($reflection->getFilename()).'/Resources/config/validation.yml')) {
|
||||
$yamlMappingFiles[] = realpath($file);
|
||||
$container->addResource(new FileResource($file));
|
||||
}
|
||||
}
|
||||
|
||||
return $files;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the base path for the XSD files.
|
||||
*
|
||||
|
@ -45,5 +45,13 @@
|
||||
<service id="validator.mapping.loader.annotation_loader" class="%validator.mapping.loader.annotation_loader.class%" public="false">
|
||||
<argument /> <!-- namespaces -->
|
||||
</service>
|
||||
|
||||
<service id="validator.mapping.loader.xml_files_loader" class="%validator.mapping.loader.xml_files_loader.class%" public="false">
|
||||
<argument /> <!-- mapping files -->
|
||||
</service>
|
||||
|
||||
<service id="validator.mapping.loader.yaml_files_loader" class="%validator.mapping.loader.yaml_files_loader.class%" public="false">
|
||||
<argument /> <!-- mapping files -->
|
||||
</service>
|
||||
</services>
|
||||
</container>
|
||||
|
Reference in New Issue
Block a user