-
-
Notifications
You must be signed in to change notification settings - Fork 547
Expand file tree
/
Copy pathAddServicesCompilerPass.php
More file actions
89 lines (77 loc) · 2.2 KB
/
AddServicesCompilerPass.php
File metadata and controls
89 lines (77 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
namespace Drupal\Console\Bootstrap;
use Drupal\Console\Extension\Manager;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
use Symfony\Component\Finder\Finder;
/**
* FindCommandsCompilerPass
*/
class AddServicesCompilerPass implements CompilerPassInterface
{
/**
* @var string
*/
protected $root;
/**
* AddCommandsCompilerPass constructor.
* @param string $root
*/
public function __construct($root)
{
$this->root = $root;
}
/**
* @inheritdoc
*/
public function process(ContainerBuilder $container)
{
$loader = new YamlFileLoader(
$container,
new FileLocator($this->root)
);
$loader->load(DRUPAL_CONSOLE_CORE . '/services.yml');
$loader->load(DRUPAL_CONSOLE . '/services.yml');
$finder = new Finder();
$finder->files()
->name('*.yml')
->in(
sprintf(
'%s/config/services/drupal-console',
DRUPAL_CONSOLE
)
);
foreach ($finder as $file) {
$loader->load($file->getPathName());
}
/**
* @var Manager $extensionManager
*/
$extensionManager = $container->get('console.extension_manager');
$modules = $extensionManager->discoverModules()
->showCore()
->showNoCore()
->showInstalled()
->getList(true);
$finder = new Finder();
$finder->files()
->name('*.yml')
->in(
sprintf(
'%s/config/services/drupal-core',
DRUPAL_CONSOLE
)
);
foreach ($finder as $file) {
if (in_array($file->getBasename('.yml'), $modules)) {
$loader->load($file->getPathName());
}
}
$container->setParameter(
'console.service_definitions',
$container->getDefinitions()
);
}
}