WP_CLI
PackageManagerEventSubscriber{}
A Composer Event subscriber so we can keep track of what's happening inside Composer
No Hooks.
Usage
$PackageManagerEventSubscriber = new PackageManagerEventSubscriber(); // use class methods
Methods
- public static getSubscribedEvents()
- public static post_install( PackageEvent $event )
- public static pre_install( PackageEvent $event )
PackageManagerEventSubscriber{} PackageManagerEventSubscriber{} code WP-CLI 2.8.0-alpha
class PackageManagerEventSubscriber implements EventSubscriberInterface { /** * Get subscribed events. * * @return array */ public static function getSubscribedEvents() { return [ PackageEvents::PRE_PACKAGE_INSTALL => 'pre_install', PackageEvents::POST_PACKAGE_INSTALL => 'post_install', ]; } /** * Pre-install operation message. * * @param \Composer\Installer\PackageEvent $event * * @return void */ public static function pre_install( PackageEvent $event ) { $operation_message = $event->getOperation()->__toString(); WP_CLI::log( ' - ' . $operation_message ); } /** * Post-install operation log. * * @param \Composer\Installer\PackageEvent $event * * @return void */ public static function post_install( PackageEvent $event ) { $operation = $event->getOperation(); // getReason() was removed in Composer v2 without replacement. if ( ! method_exists( $operation, 'getReason' ) ) { return; } $reason = $operation->getReason(); if ( $reason instanceof Rule ) { switch ( $reason->getReason() ) { case Rule::RULE_PACKAGE_CONFLICT: case Rule::RULE_PACKAGE_SAME_NAME: case Rule::RULE_PACKAGE_REQUIRES: $composer_error = $reason->getPrettyString( $event->getPool() ); break; } if ( ! empty( $composer_error ) ) { WP_CLI::log( sprintf( ' - Warning: %s', $composer_error ) ); } } } }