CacheDefaultExpressions   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Test Coverage

Coverage 0%

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 3
c 2
b 0
f 1
lcom 0
cbo 4
dl 0
loc 26
ccs 0
cts 10
cp 0
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A process() 0 16 3
1
<?php
2
3
namespace BrainExe\Expression\CompilerPass;
4
5
use BrainExe\Core\Traits\FileCacheTrait;
6
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
7
use Symfony\Component\DependencyInjection\ContainerBuilder;
8
use BrainExe\Core\Annotations\CompilerPass as CompilerPassAnnotation;
9
10
/**
11
 * @CompilerPassAnnotation
12
 */
13
class CacheDefaultExpressions implements CompilerPassInterface
14
{
15
    use FileCacheTrait;
16
17
    const CACHE_FILE = 'default_expressions.php';
18
19
    /**
20
     * {@inheritdoc}
21
     */
22
    public function process(ContainerBuilder $container)
23
    {
24
        $expressions = [];
25
        $serviceIds = $container->findTaggedServiceIds('default_expressions');
26
        foreach (array_keys($serviceIds) as $serviceId) {
27
            $definition = $container->getDefinition($serviceId);
28
29
            /** @var DefaultExpression $class */
30
            $class = $definition->getClass();
31
            foreach ($class::getDefaultExpressions() as $entity) {
32
                $expressions[$entity->expressionId] = $entity;
33
            }
34
        }
35
36
        $this->dumpVariableToCache(self::CACHE_FILE, $expressions);
37
    }
38
}
39