WP_CLI
PackageManagerEventSubscriber{}└─ EventSubscriberInterface
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.13.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 ) );
}
}
}
}