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

68publishers / file-storage / 15323524541

29 May 2025 12:10PM UTC coverage: 84.554% (-7.8%) from 92.308%
15323524541

Pull #8

github

web-flow
Merge 9bd4b512d into da640973d
Pull Request #8: PHP 8.4 support

531 of 628 relevant lines covered (84.55%)

0.85 hits per line

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

20.0
/src/Bridge/Nette/DI/FileStorageConsoleExtension.php
1
<?php
2

3
declare(strict_types=1);
4

5
namespace SixtyEightPublishers\FileStorage\Bridge\Nette\DI;
6

7
use Nette\DI\CompilerExtension;
8
use Nette\DI\Definitions\Reference;
9
use Nette\DI\Definitions\ServiceDefinition;
10
use SixtyEightPublishers\FileStorage\Bridge\Symfony\Console\Command\CleanCommand;
11
use SixtyEightPublishers\FileStorage\Bridge\Symfony\Console\Command\CopyAssetsCommand;
12
use SixtyEightPublishers\FileStorage\Bridge\Symfony\Console\Configurator\BaseCleanCommandConfigurator;
13
use SixtyEightPublishers\FileStorage\Bridge\Symfony\Console\Configurator\CleanCommandConfiguratorInterface;
14
use SixtyEightPublishers\FileStorage\Bridge\Symfony\Console\Configurator\CleanCommandConfiguratorRegistry;
15
use SixtyEightPublishers\FileStorage\Exception\RuntimeException;
16
use function array_keys;
17
use function array_map;
18
use function assert;
19
use function count;
20
use function sprintf;
21

22
final class FileStorageConsoleExtension extends CompilerExtension
23
{
24
    public const TAG_CLEAN_COMMAND_CONFIGURATOR = '68publishers.file_storage.console.clean_command_configurator';
25

26
    public function loadConfiguration(): void
27
    {
28
        if (0 >= count($this->compiler->getExtensions(FileStorageExtension::class))) {
1✔
29
            throw new RuntimeException(sprintf(
1✔
30
                'The extension %s can be used only with %s.',
1✔
31
                self::class,
1✔
32
                FileStorageExtension::class,
1✔
33
            ));
34
        }
35

36
        $builder = $this->getContainerBuilder();
×
37

38
        # Clean command
39
        $builder->addDefinition($this->prefix('configurator.clean_command.registry'))
×
40
            ->setType(CleanCommandConfiguratorInterface::class)
×
41
            ->setFactory(CleanCommandConfiguratorRegistry::class);
×
42

43
        $builder->addDefinition($this->prefix('configurator.clean_command.base'))
×
44
            ->setType(CleanCommandConfiguratorInterface::class)
×
45
            ->setFactory(BaseCleanCommandConfigurator::class)
×
46
            ->addTag(self::TAG_CLEAN_COMMAND_CONFIGURATOR)
×
47
            ->setAutowired(false);
×
48

49
        $builder->addDefinition($this->prefix('command.clean'))
×
50
            ->setType(CleanCommand::class)
×
51
            ->setArgument('cleanCommandConfigurator', new Reference($this->prefix('configurator.clean_command.registry')));
×
52

53
        # Copy assets command
54
        $builder->addDefinition($this->prefix('command.copy_assets'))
×
55
            ->setType(CopyAssetsCommand::class);
×
56
    }
×
57

58
    public function beforeCompile(): void
59
    {
60
        $builder = $this->getContainerBuilder();
×
61

62
        $cleanCommandConfiguratorRegistry = $builder->getDefinition($this->prefix('configurator.clean_command.registry'));
×
63
        assert($cleanCommandConfiguratorRegistry instanceof ServiceDefinition);
64

65
        $cleanCommandConfiguratorRegistry->setArguments([
×
66
            array_map(static fn (string $name): Reference => new Reference($name), array_keys($builder->findByTag(self::TAG_CLEAN_COMMAND_CONFIGURATOR))),
×
67
        ]);
68
    }
×
69
}
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

© 2026 Coveralls, Inc