1
1
<?php
2
2
namespace Codeception \c3 ;
3
3
use Composer \Composer ;
4
+ use Composer \DependencyResolver \Operation \InstallOperation ;
5
+ use Composer \DependencyResolver \Operation \UninstallOperation ;
6
+ use Composer \DependencyResolver \Operation \UpdateOperation ;
4
7
use Composer \EventDispatcher \EventSubscriberInterface ;
8
+ use Composer \Installer \PackageEvent ;
5
9
use Composer \IO \IOInterface ;
6
10
use Composer \Plugin \PluginInterface ;
7
11
use Composer \Script \Event ;
8
12
use Composer \Script \ScriptEvents ;
9
- use Composer \Installer \PackageEvent ;
10
13
11
14
class Installer implements PluginInterface, EventSubscriberInterface
12
15
{
@@ -22,8 +25,16 @@ public function activate(Composer $composer, IOInterface $io)
22
25
23
26
protected function isOperationOnC3 (PackageEvent $ event )
24
27
{
25
- list (, $ name ) = explode ('/ ' , $ event ->getOperation ()->getPackage ()->getName ());
26
-
28
+ $ name = '' ;
29
+
30
+ if ($ event ->getOperation () instanceof InstallOperation) {
31
+ list (, $ name ) = explode ('/ ' , $ event ->getOperation ()->getPackage ()->getName ());
32
+ } elseif ($ event ->getOperation () instanceof UpdateOperation) {
33
+ list (, $ name ) = explode ('/ ' , $ event ->getOperation ()->getTargetPackage ()->getName ());
34
+ } elseif ($ event ->getOperation () instanceof UninstallOperation) {
35
+ list (, $ name ) = explode ('/ ' , $ event ->getOperation ()->getPackage ()->getName ());
36
+ }
37
+
27
38
return $ name === 'c3 ' ;
28
39
}
29
40
0 commit comments