Skip to content

Commit f1d3f76

Browse files
authored
Merge pull request #1 from hechoendrupal/add-boostrap-attribute
Read service tag attribute bootstrap.
2 parents fe98b54 + d949218 commit f1d3f76

File tree

2 files changed

+40
-6
lines changed

2 files changed

+40
-6
lines changed

src/Extender.php

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public function processPackages(PackageEvent $event)
6767

6868
$configFile = $directory . '/extend.console.config.yml';
6969
$servicesFile = $directory . '/extend.console.services.yml';
70+
$servicesUnistallFile = $directory . '/extend.console.uninstall.services.yml';
7071

7172
if (file_exists($configFile)) {
7273
unlink($configFile);
@@ -78,6 +79,11 @@ public function processPackages(PackageEvent $event)
7879
$this->io->write('<info>Removing services cache file:</info>' . $servicesFile);
7980
}
8081

82+
if (file_exists($servicesUnistallFile)) {
83+
unlink($servicesUnistallFile);
84+
$this->io->write('<info>Removing services cache file:</info>' . $servicesUnistallFile);
85+
}
86+
8187
if ($configData = $extenderManager->getConfigData()) {
8288
file_put_contents(
8389
$configFile,
@@ -86,12 +92,22 @@ public function processPackages(PackageEvent $event)
8692
$this->io->write('<info>Creating config cache file:</info>' . $configFile);
8793
}
8894

89-
if ($servicesData = $extenderManager->getServicesData()) {
95+
$servicesData = $extenderManager->getServicesData();
96+
if ($servicesData && array_key_exists('install', $servicesData)) {
9097
file_put_contents(
9198
$servicesFile,
92-
Yaml::dump($servicesData, 4, 2)
99+
Yaml::dump($servicesData['install'], 4, 2)
93100
);
94101
$this->io->write('<info>Creating services cache file: </info>' . $servicesFile);
95102
}
103+
104+
$servicesData = $extenderManager->getServicesData();
105+
if ($servicesData && array_key_exists('uninstall', $servicesData)) {
106+
file_put_contents(
107+
$servicesUnistallFile,
108+
Yaml::dump($servicesData['uninstall'], 4, 2)
109+
);
110+
$this->io->write('<info>Creating services cache file: </info>' . $servicesUnistallFile);
111+
}
96112
}
97113
}

src/ExtenderManager.php

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,28 @@ public function addServicesFile($servicesFile)
6969
{
7070
$servicesData = $this->parseData($servicesFile);
7171
if ($this->isValidServicesData($servicesData)) {
72-
$this->servicesData = array_merge_recursive(
73-
$servicesData,
74-
$this->servicesData
75-
);
72+
foreach ($servicesData['services'] as $key => $definition) {
73+
if (!array_key_exists('tags', $definition)) {
74+
continue;
75+
}
76+
$bootstrap = 'install';
77+
foreach ($definition['tags'] as $tags) {
78+
if (!array_key_exists('name', $tags)) {
79+
continue;
80+
}
81+
82+
if (array_key_exists('bootstrap', $tags)) {
83+
$bootstrap = $tags['bootstrap'];
84+
}
85+
}
86+
87+
$packageService[$bootstrap]['services'][$key] = $definition;
88+
89+
$this->servicesData = array_merge_recursive(
90+
$packageService,
91+
$this->servicesData
92+
);
93+
}
7694
}
7795
}
7896

0 commit comments

Comments
 (0)