[DI] Use GlobResource for non-tracked directories

This commit is contained in:
Valentin 2017-08-11 22:45:37 +03:00 committed by Nicolas Grekas
parent eea78fdc78
commit 048eb186c7
3 changed files with 15 additions and 7 deletions

View File

@ -1346,7 +1346,7 @@ class FrameworkExtension extends Extension
$fileRecorder('yml', $file);
}
if ($container->fileExists($dir = $dirname.'/Resources/config/serialization')) {
if ($container->fileExists($dir = $dirname.'/Resources/config/serialization', '/^$/')) {
$this->registerMappingFilesFromDir($dir, $fileRecorder);
}
}

View File

@ -13,6 +13,7 @@ namespace Symfony\Bundle\TwigBundle\DependencyInjection;
use Symfony\Bridge\Twig\Extension\WebLinkExtension;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\Config\Resource\FileExistenceResource;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
@ -118,9 +119,10 @@ class TwigExtension extends Extension
}
}
if ($container->fileExists($dir = $container->getParameter('kernel.root_dir').'/Resources/views', false)) {
if (file_exists($dir = $container->getParameter('kernel.root_dir').'/Resources/views')) {
$twigFilesystemLoaderDefinition->addMethodCall('addPath', array($dir));
}
$container->addResource(new FileExistenceResource($dir));
if (!empty($config['globals'])) {
$def = $container->getDefinition('twig');
@ -178,13 +180,15 @@ class TwigExtension extends Extension
);
}
if ($container->fileExists($dir = $container->getParameter('kernel.root_dir').'/Resources/'.$name.'/views', false)) {
if (file_exists($dir = $container->getParameter('kernel.root_dir').'/Resources/'.$name.'/views')) {
$bundleHierarchy[$name]['paths'][] = $dir;
}
$container->addResource(new FileExistenceResource($dir));
if ($container->fileExists($dir = $bundle['path'].'/Resources/views', false)) {
if (file_exists($dir = $bundle['path'].'/Resources/views')) {
$bundleHierarchy[$name]['paths'][] = $dir;
}
$container->addResource(new FileExistenceResource($dir));
if (null === $bundle['parent']) {
continue;

View File

@ -407,9 +407,13 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
return $exists;
}
if ($trackContents && is_dir($path)) {
$this->addResource(new DirectoryResource($path, is_string($trackContents) ? $trackContents : null));
} elseif ($trackContents || is_dir($path)) {
if (is_dir($path)) {
if ($trackContents) {
$this->addResource(new DirectoryResource($path, is_string($trackContents) ? $trackContents : null));
} else {
$this->addResource(new GlobResource($path, '/*', false));
}
} elseif ($trackContents) {
$this->addResource(new FileResource($path));
}