Skip to content

Commit e5d7346

Browse files
authored
Merge pull request #522 from mcg-web/allow-env-for-auto_compile-config
Allow env for "definitions.auto_compile" config
2 parents d91d5ba + f8bb56d commit e5d7346

File tree

3 files changed

+29
-18
lines changed

3 files changed

+29
-18
lines changed

src/CacheWarmer/CompileCacheWarmer.php

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,33 +7,43 @@
77

88
class CompileCacheWarmer implements CacheWarmerInterface
99
{
10-
/** @var TypeGenerator */
1110
private $typeGenerator;
1211

13-
public function __construct(TypeGenerator $typeGenerator)
12+
private $compiled;
13+
14+
/**
15+
* CompileCacheWarmer constructor.
16+
*
17+
* @param TypeGenerator $typeGenerator
18+
* @param bool $compiled
19+
*/
20+
public function __construct(TypeGenerator $typeGenerator, $compiled = true)
1421
{
1522
$this->typeGenerator = $typeGenerator;
23+
$this->compiled = $compiled;
1624
}
1725

1826
/**
1927
* {@inheritdoc}
2028
*/
2129
public function isOptional()
2230
{
23-
return false;
31+
return !$this->compiled;
2432
}
2533

2634
/**
2735
* {@inheritdoc}
2836
*/
2937
public function warmUp($cacheDir)
3038
{
31-
// use warm up cache dir if type generator cache dir not already explicitly declare
32-
$baseCacheDir = $this->typeGenerator->getBaseCacheDir();
33-
if (null === $this->typeGenerator->getCacheDir(false)) {
34-
$this->typeGenerator->setBaseCacheDir($cacheDir);
39+
if ($this->compiled) {
40+
// use warm up cache dir if type generator cache dir not already explicitly declare
41+
$baseCacheDir = $this->typeGenerator->getBaseCacheDir();
42+
if (null === $this->typeGenerator->getCacheDir(false)) {
43+
$this->typeGenerator->setBaseCacheDir($cacheDir);
44+
}
45+
$this->typeGenerator->compile(TypeGenerator::MODE_WRITE | TypeGenerator::MODE_OVERRIDE);
46+
$this->typeGenerator->setBaseCacheDir($baseCacheDir);
3547
}
36-
$this->typeGenerator->compile(TypeGenerator::MODE_WRITE | TypeGenerator::MODE_OVERRIDE);
37-
$this->typeGenerator->setBaseCacheDir($baseCacheDir);
3848
}
3949
}

src/DependencyInjection/Configuration.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ private function definitionsSection()
115115
->scalarNode('cache_dir')->defaultNull()->end()
116116
->scalarNode('cache_dir_permissions')->defaultNull()->end()
117117
->booleanNode('use_classloader_listener')->defaultTrue()->end()
118-
->booleanNode('auto_compile')->defaultTrue()->end()
118+
->scalarNode('auto_compile')->defaultTrue()->end()
119119
->booleanNode('show_debug_info')->info('Show some performance stats in extensions')->defaultFalse()->end()
120120
->booleanNode('config_validation')->defaultValue($this->debug)->end()
121121
->append($this->definitionsSchemaSection())

src/DependencyInjection/OverblogGraphQLExtension.php

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,15 @@ private function loadConfigFiles(ContainerBuilder $container)
7979

8080
private function setCompilerCacheWarmer(array $config, ContainerBuilder $container)
8181
{
82-
if ($config['definitions']['auto_compile']) {
83-
$definition = $container->setDefinition(
84-
CompileCacheWarmer::class,
85-
new Definition(CompileCacheWarmer::class)
86-
);
87-
$definition->setArguments([new Reference($this->getAlias().'.cache_compiler')]);
88-
$definition->addTag('kernel.cache_warmer', ['priority' => 50]);
89-
}
82+
$definition = $container->setDefinition(
83+
CompileCacheWarmer::class,
84+
new Definition(CompileCacheWarmer::class)
85+
);
86+
$definition->setArguments([
87+
new Reference($this->getAlias().'.cache_compiler'),
88+
$config['definitions']['auto_compile'],
89+
]);
90+
$definition->addTag('kernel.cache_warmer', ['priority' => 50]);
9091
}
9192

9293
private function setClassLoaderListener(array $config, ContainerBuilder $container)

0 commit comments

Comments
 (0)