Skip to content

Commit a9c6f20

Browse files
authored
[console] Update getSubscribedEvents. (#10)
1 parent 4e7f576 commit a9c6f20

File tree

1 file changed

+41
-19
lines changed

1 file changed

+41
-19
lines changed

src/Extender.php

Lines changed: 41 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
use Composer\Composer;
66
use Composer\IO\IOInterface;
77
use Composer\Plugin\PluginInterface;
8-
use Composer\Installer\PackageEvent;
9-
use Composer\Installer\PackageEvents;
8+
use Composer\Script\Event;
9+
use Composer\Script\ScriptEvents;
1010
use Composer\EventDispatcher\EventSubscriberInterface;
1111
use Symfony\Component\Yaml\Yaml;
12+
use Symfony\Component\Finder\Finder;
1213

1314
// Explicitly require ExtenderManager here.
1415
// When this package is uninstalled, ExtenderManager needs to be available any
@@ -44,18 +45,17 @@ public function activate(Composer $composer, IOInterface $io)
4445
*/
4546
public static function getSubscribedEvents()
4647
{
47-
return array(
48-
PackageEvents::POST_PACKAGE_INSTALL => "processPackages",
49-
PackageEvents::POST_PACKAGE_UPDATE => "processPackages",
50-
PackageEvents::POST_PACKAGE_UNINSTALL => "processPackages",
51-
);
48+
return [
49+
ScriptEvents::POST_INSTALL_CMD => "processPackages",
50+
ScriptEvents::POST_UPDATE_CMD => "processPackages",
51+
];
5252
}
5353

5454
/**
55-
* @param PackageEvent $event
55+
* @param Event $event
5656
* @throws \Exception
5757
*/
58-
public function processPackages(PackageEvent $event)
58+
public function processPackages(Event $event)
5959
{
6060
$extenderManager = new ExtenderManager();
6161

@@ -65,22 +65,22 @@ public function processPackages(PackageEvent $event)
6565
$localRepository = $repositoryManager->getLocalRepository();
6666

6767
foreach ($localRepository->getPackages() as $package) {
68-
if ($installationManager->isPackageInstalled($localRepository, $package)) {
69-
if ($package->getType() === 'drupal-console-library') {
70-
$extenderManager->addServicesFile($installationManager->getInstallPath($package) . '/console.services.yml');
71-
$extenderManager->addConfigFile($installationManager->getInstallPath($package) . '/console.config.yml');
68+
if ($installationManager->isPackageInstalled($localRepository, $package)) {
69+
if ($package->getType() === 'drupal-console-library') {
70+
$extenderManager->addServicesFile($installationManager->getInstallPath($package) . '/console.services.yml');
71+
$extenderManager->addConfigFile($installationManager->getInstallPath($package) . '/console.config.yml');
72+
}
7273
}
73-
}
7474
}
7575

7676
if ($consolePackage = $localRepository->findPackage('drupal/console', '*')) {
77-
if ($localRepository->hasPackage($consolePackage)) {
78-
$directory = $installationManager->getInstallPath($consolePackage);
79-
}
77+
if ($localRepository->hasPackage($consolePackage)) {
78+
$directory = $installationManager->getInstallPath($consolePackage);
79+
}
8080
}
8181
if (empty($directory)) {
82-
// cwd should be the project root. This is the same logic Symfony uses.
83-
$directory = getcwd();
82+
// cwd should be the project root. This is the same logic Symfony uses.
83+
$directory = getcwd();
8484
}
8585

8686
$configFile = $directory . '/extend.console.config.yml';
@@ -127,5 +127,27 @@ public function processPackages(PackageEvent $event)
127127
);
128128
$this->io->write('<info>Creating services cache file: </info>' . $servicesUninstallFile);
129129
}
130+
131+
$this->removeCacheFiles();
132+
}
133+
134+
protected function removeCacheFiles()
135+
{
136+
$finder = new Finder();
137+
$finder->files()
138+
->in(getcwd().'/console/cache/')
139+
->ignoreUnreadableDirs();
140+
141+
foreach ($finder as $file) {
142+
unlink($file->getPathName());
143+
}
144+
145+
$finder->directories()
146+
->in(getcwd().'/console/cache/')
147+
->ignoreUnreadableDirs();
148+
149+
foreach ($finder as $directory) {
150+
rmdir($directory);
151+
}
130152
}
131153
}

0 commit comments

Comments
 (0)