File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed
src/Illuminate/Foundation Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change 2
2
3
3
namespace Illuminate \Foundation ;
4
4
5
+ use Composer \Installer \PackageEvent ;
5
6
use Composer \Script \Event ;
6
7
7
8
class ComposerScripts
@@ -45,6 +46,40 @@ public static function postAutoloadDump(Event $event)
45
46
static ::clearCompiled ();
46
47
}
47
48
49
+ /**
50
+ * Handle the pre-package-uninstall Composer event.
51
+ *
52
+ * @param \Composer\Installer\PackageEvent $event
53
+ * @return void
54
+ */
55
+ public static function prePackageUninstall (PackageEvent $ event )
56
+ {
57
+ $ bootstrapFile = $ event ->getComposer ()->getConfig ()->get ('base-dir ' );
58
+
59
+ $ bootstrapFile = dirname ($ vendorDir = $ event ->getComposer ()->getConfig ()->get ('vendor-dir ' )).'/bootstrap/app.php ' ;
60
+
61
+ if (! file_exists ($ bootstrapFile )) {
62
+ return ;
63
+ }
64
+
65
+ require_once $ vendorDir .'/autoload.php ' ;
66
+
67
+ define ('LARAVEL_START ' , microtime (true ));
68
+
69
+ /** @var Application $app */
70
+ $ app = require_once $ bootstrapFile ;
71
+
72
+ /** @var \Composer\DependencyResolver\Operation\UninstallOperation $uninstallOperation */
73
+ $ uninstallOperation = $ event ->getOperation ()->getPackage ();
74
+ $ packageName = $ uninstallOperation ->getName ();
75
+ $ isDev = $ uninstallOperation ->isDev ();
76
+
77
+ $ app ['events ' ]->dispatch ('composer_package:uninstall: ' .$ packageName , [
78
+ 'package ' => $ packageName ,
79
+ 'isDev ' => $ isDev ,
80
+ ]);
81
+ }
82
+
48
83
/**
49
84
* Clear the cached Laravel bootstrapping files.
50
85
*
You can’t perform that action at this time.
0 commit comments