Uname: Linux serv.m-auto.co 3.10.0-1160.42.2.el7.x86_64 #1 SMP Tue Sep 7 14:49:57 UTC 2021 x86_64
Software: nginx/1.28.2
PHP version: 8.1.34 [ PHP INFO ] PHP os: Linux
Server Ip: 41.215.243.19
Your Ip: 216.73.216.151
User: m-auto.co_vxasg6smqe (10000) | Group: psacln (1003)
Safe Mode: OFF
Disable Function:
opcache_get_status,mail

name : Plugin.php
<?php
// Copyright 1999-2019. Plesk International GmbH. All rights reserved.

namespace Plesk\ComposerCommandInfo;

use Composer\Composer;
use Composer\DependencyResolver\Operation\InstallOperation;
use Composer\DependencyResolver\Operation\OperationInterface;
use Composer\DependencyResolver\Operation\UninstallOperation;
use Composer\DependencyResolver\Operation\UpdateOperation;
use Composer\EventDispatcher\EventSubscriberInterface;
use Composer\Installer\InstallerEvent;
use Composer\Installer\InstallerEvents;
use Composer\Installer\PackageEvent;
use Composer\IO\IOInterface;
use Composer\Plugin\PluginInterface;
use Composer\Plugin\CommandEvent;
use Composer\Plugin\PluginEvents;
use Plesk\ComposerCommandInfo\Command\CommandInfoInterface;
use Plesk\ComposerCommandInfo\Command\CommandInfoFactory;
use Plesk\ComposerCommandInfo\Operation\BaseOperation;
use Plesk\ComposerCommandInfo\Operation\DependenciesSolvingOperation;

/**
 * Class Plugin
 */
class Plugin implements PluginInterface, EventSubscriberInterface
{
    /**
     * @var CommandInfoFactory
     */
    private $commandInfoFactory;

    /**
     * @var CommandInfoInterface|null
     */
    private $commandInfo;

    /**
     * {@inheritDoc}
     */
    public function activate(Composer $composer, IOInterface $io)
    {
        $this->commandInfoFactory = new CommandInfoFactory($composer);
        $this->commandInfo = $this->commandInfoFactory->getNullCommandInfo();
    }

    public function deactivate(Composer $composer, IOInterface $io)
    {
    }

    public function uninstall(Composer $composer, IOInterface $io)
    {
    }

    /**
     * {@inheritDoc}
     */
    public static function getSubscribedEvents()
    {
        return [
            PluginEvents::COMMAND => [
                ['onCommand']
            ],
            InstallerEvents::PRE_OPERATIONS_EXEC => [
                ['onPostDependenciesSolving'],
            ],
            'pre-package-install' => [
                ['onPrePackageInstall'],
            ],
            'post-package-install' => [
                ['onPostPackageInstall'],
            ],
            'pre-package-update' => [
                ['onPrePackageUpdate'],
            ],
            'post-package-update' => [
                ['onPostPackageUpdate'],
            ],
            'pre-package-uninstall' => [
                ['onPrePackageUninstall'],
            ],
            'post-package-uninstall' => [
                ['onPostPackageUninstall'],
            ],
        ];
    }

    /**
     * @param CommandEvent $event
     */
    public function onCommand(CommandEvent $event)
    {
        $this->commandInfo = $this->commandInfoFactory->getCommandInfo($event);
        $this->initDependencySolvingTask();
    }

    private function initDependencySolvingTask()
    {
        $operation = new DependenciesSolvingOperation();
        $this->commandInfo
            ->setOperations([$operation])
            ->setCurrentOperation($operation)
            ->save();
    }

    /**
     * @param InstallerEvent $event
     */
    public function onPostDependenciesSolving(InstallerEvent $event)
    {
        /**
         * @var OperationInterface[] $operations
         */
        $operations = $event->getTransaction()->getOperations();
        $operations = array_filter($operations, function ($operation) {
            return $operation instanceof InstallOperation
                || $operation instanceof UpdateOperation
                || $operation instanceof UninstallOperation;
        });
        $operations = array_map(function ($operation) {
            return new BaseOperation($operation);
        }, $operations);

        $this->commandInfo
            ->onPostDependenciesSolving()
            ->setOperations($operations)
            ->setOperationsInitialized()
            ->completeOperation(new DependenciesSolvingOperation())
            ->save();
    }

    /**
     * @param PackageEvent $event
     */
    public function onPrePackageInstall(PackageEvent $event)
    {
        /**
         * @var InstallOperation $operation
         */
        $operation = $event->getOperation();
        $this->commandInfo
            ->setCurrentOperation(new BaseOperation($operation))
            ->save();
    }

    /**
     * @param PackageEvent $event
     */
    public function onPostPackageInstall(PackageEvent $event)
    {
        /**
         * @var InstallOperation $operation
         */
        $operation = $event->getOperation();
        $this->commandInfo
            ->completeOperation(new BaseOperation($operation))
            ->save();
    }

    /**
     * @param PackageEvent $event
     */
    public function onPrePackageUpdate(PackageEvent $event)
    {
        /**
         * @var UpdateOperation $operation
         */
        $operation = $event->getOperation();
        $this->commandInfo
            ->setCurrentOperation(new BaseOperation($operation))
            ->save();
    }

    /**
     * @param PackageEvent $event
     */
    public function onPostPackageUpdate(PackageEvent $event)
    {
        /**
         * @var UpdateOperation $operation
         */
        $operation = $event->getOperation();
        $this->commandInfo
            ->completeOperation(new BaseOperation($operation))
            ->save();
    }

    /**
     * @param PackageEvent $event
     */
    public function onPrePackageUninstall(PackageEvent $event)
    {
        /**
         * @var UninstallOperation $operation
         */
        $operation = $event->getOperation();
        $this->commandInfo
            ->setCurrentOperation(new BaseOperation($operation))
            ->save();
    }

    /**
     * @param PackageEvent $event
     */
    public function onPostPackageUninstall(PackageEvent $event)
    {
        /**
         * @var UninstallOperation $operation
         */
        $operation = $event->getOperation();
        $this->commandInfo
            ->completeOperation(new BaseOperation($operation))
            ->save();
    }
}
© 2026 GrazzMean