• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ICanBoogie / Module / 4270677071

pending completion
4270677071

push

github

Olivier Laviale
Tidy

2 of 2 new or added lines in 2 files covered. (100.0%)

73 of 415 relevant lines covered (17.59%)

0.68 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/lib/Module/ModuleContainerExtension.php
1
<?php
2

3
namespace ICanBoogie\Module;
4

5
use ICanBoogie\Application;
6
use ICanBoogie\Binding\Module\Config;
7
use ICanBoogie\Binding\SymfonyDependencyInjection\ExtensionWithFactory;
8
use Symfony\Component\DependencyInjection\ContainerBuilder;
9
use Symfony\Component\DependencyInjection\Definition;
10
use Symfony\Component\DependencyInjection\Extension\Extension;
11
use Symfony\Component\DependencyInjection\Reference;
12

13
/**
14
 * Define modules as services.
15
 */
16
final class ModuleContainerExtension extends Extension implements ExtensionWithFactory
17
{
18
    public static function from(Application $app): self
19
    {
20
        return new self($app);
×
21
    }
22

23
    private function __construct(
24
        private readonly Application $app
25
    ) {
26
    }
×
27

28
    public function load(array $configs, ContainerBuilder $container): void
29
    {
30
        $config = $this->app->config_for_class(Config::class);
×
31

32
        foreach ($config->descriptors as $id => $descriptor) {
×
33
            // descriptor
34
            $descriptor_id = "module_descriptor.$id";
×
35

36
            $definition = (new Definition(Descriptor::class))
×
37
                ->setFactory([ new Reference(Config::class), 'descriptor_for' ])
×
38
                ->setArguments([ $id ])
×
39
                ->addTag('module_descriptor', [ 'id' => $id ]);
×
40

41
            $container->setDefinition($descriptor_id, $definition);
×
42

43
            // module
44
            $class = $descriptor->class;
×
45

46
            $definition = (new Definition($class))
×
47
                ->setAutowired(true)
×
48
                ->setArgument('$descriptor', new Reference($descriptor_id))
×
49
                ->addTag('module', [ 'id' => $id ]);
×
50

51
            $container->setDefinition($class, $definition);
×
52
        }
53
    }
54
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc