PluginProbe
Code Snippets / 3.10.0
Code Snippets v3.10.0
4.0.0-beta.2 3.10.2 3.10.1 3.10.0 3.10.0-beta.2 3.10.0-beta.1 4.0.0-beta.1 3.9.6 trunk 2.10.0 2.10.1 2.12.0 2.12.1 2.13.0 2.13.1 2.13.2 2.13.3 2.14.0 2.14.1 2.14.2 2.14.3 2.14.4 2.14.5 2.14.6 3.0.0 All 65 releases
code-snippets / vendor / typisttech / imposter-plugin / src / ImposterPlugin.php

ImposterPlugin.php in Code Snippets 3.10.0, at vendor/typisttech/imposter-plugin/src/ImposterPlugin.php

71 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace TypistTech\Imposter\Plugin;
6
7 use Composer\Composer;
8 use Composer\EventDispatcher\EventSubscriberInterface;
9 use Composer\IO\IOInterface;
10 use Composer\Package\CompletePackage;
11 use Composer\Package\RootPackageInterface;
12 use Composer\Plugin\PluginInterface;
13 use Composer\Script\Event;
14 use Composer\Script\ScriptEvents;
15
16 class ImposterPlugin implements PluginInterface, EventSubscriberInterface
17 {
18 /**
19 * {@inheritDoc}
20 */
21 public function activate(Composer $composer, IOInterface $io)
22 {
23 $package = $composer->getPackage();
24 if ($package instanceof RootPackageInterface) {
25 AutoloadMerger::run($package);
26 }
27
28 if ($package instanceof CompletePackage) {
29 $scripts = array_merge_recursive([
30 ScriptEvents::POST_INSTALL_CMD => [
31 '@composer dump-autoload --optimize',
32 ],
33 ScriptEvents::POST_UPDATE_CMD => [
34 '@composer dump-autoload --optimize',
35 ],
36 ], $package->getScripts());
37
38 $package->setScripts($scripts);
39 }
40 }
41
42 /**
43 * {@inheritDoc}
44 */
45 public static function getSubscribedEvents()
46 {
47 return [
48 ScriptEvents::PRE_AUTOLOAD_DUMP => [
49 ['transform', PHP_INT_MAX - 1000],
50 ],
51 ];
52 }
53
54 public function transform(Event $event): void
55 {
56 Transformer::run(
57 $event->getIO()
58 );
59 }
60
61 public function deactivate(Composer $composer, IOInterface $io)
62 {
63 // Do nothing.
64 }
65
66 public function uninstall(Composer $composer, IOInterface $io)
67 {
68 // Do nothing.
69 }
70 }
71