8000 bug #23870 [DI] Use GlobResource for non-tracked directories (vudaltsov) · symfony/symfony@9810018 · GitHub
[go: up one dir, main page]

Skip to content

Commit 9810018

Browse files
bug #23870 [DI] Use GlobResource for non-tracked directories (vudaltsov)
This PR was merged into the 3.3 branch. Discussion ---------- [DI] Use GlobResource for non-tracked directories | Q | A | ------------- | --- | Branch? | 3.3 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | n/a | License | MIT | Doc PR | n/a I noticed that some of my excluded directories are still tracked by the container and changes to files inside them make it recompile. This brought 8000 me to the `$trackContents || is_dir($path)` line introduced in #21505. Commits ------- 048eb18 [DI] Use GlobResource for non-tracked directories
2 parents f335451 + 048eb18 commit 9810018

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1346,7 +1346,7 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
13461346
$fileRecorder('yml', $file);
13471347
}
13481348

1349-
if ($container->fileExists($dir = $dirname.'/Resources/config/serialization')) {
1349+
if ($container->fileExists($dir = $dirname.'/Resources/config/serialization', '/^$/')) {
13501350
$this->registerMappingFilesFromDir($dir, $fileRecorder);
13511351
}
13521352
}

src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
use Symfony\Bridge\Twig\Extension\WebLinkExtension;
1515
use Symfony\Component\Config\FileLocator;
16+
use Symfony\Component\Config\Resource\FileExistenceResource;
1617
use Symfony\Component\DependencyInjection\ContainerBuilder;
1718
use Symfony\Component\DependencyInjection\Reference;
1819
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
@@ -118,9 +119,10 @@ public function load(array $configs, ContainerBuilder $container)
118119
}
119120
}
120121

121-
if ($container->fileExists($dir = $container->getParameter('kernel.root_dir').'/Resources/views', false)) {
122+
if (file_exists($dir = $container->getParameter('kernel.root_dir').'/Resources/views')) {
122123
$twigFilesystemLoaderDefinition->addMethodCall('addPath', array($dir));
123124
}
125+
$container->addResource(new FileExistenceResource($dir));
124126

125127
if (!empty($config['globals'])) {
126128
$def = $container->getDefinition('twig');
@@ -178,13 +180,15 @@ private function getBundleHierarchy(ContainerBuilder $container)
178180
);
179181
}
180182

181-
if ($container->fileExists($dir = $container->getParameter('kernel.root_dir').'/Resources/'.$name.'/views', false)) {
183+
if (file_exists($dir = $container->getParameter('kernel.root_dir').'/Resources/'.$name.'/views')) {
182184
$bundleHierarchy[$name]['paths'][] = $dir;
183185
}
186+
$container->addResource(new FileExistenceResource($dir));
184187

185-
if ($container->fileExists($dir = $bundle['path'].'/Resources/views', false)) {
188+
if (file_exists($dir = $bundle['path'].'/Resources/views')) {
186189
$bundleHierarchy[$name]['paths'][] = $dir;
187190
}
191+
$container->< 8000 span class=pl-en>addResource(new FileExistenceResource($dir));
188192

189193
if (null === $bundle['parent']) {
190194
continue;

src/Symfony/Component/DependencyInjection/ContainerBuilder.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -408,9 +408,13 @@ public function fileExists($path, $trackContents = true)
408408
return $exists;
409409
}
410410

411-
if ($trackContents && is_dir($path)) {
412-
$this->addResource(new DirectoryResource($path, is_string($trackContents) ? $trackContents : null));
413-
} elseif ($trackContents || is_dir($path)) {
411+
if (is_dir($path)) {
412+
if ($trackContents) {
413+
$this->addResource(new DirectoryResource($path, is_string($trackContents) ? $trackContents : null));
414+
} else {
415+
$this->addResource(new GlobResource($path, '/*', false));
416+
}
417+
} elseif ($trackContents) {
414418
$this->addResource(new FileResource($path));
415419
}
416420

0 commit comments

Comments
 (0)
0