Skip to content
Extraits de code Groupes Projets
SpipInstallerPlugin.php 2,26 ko
Newer Older
JamesRezo's avatar
JamesRezo a validé
<?php

namespace SpipLeague\Composer;
JamesRezo's avatar
JamesRezo a validé

use Composer\Composer;
use Composer\EventDispatcher\EventSubscriberInterface;
JamesRezo's avatar
JamesRezo a validé
use Composer\IO\IOInterface;
use Composer\Plugin\Capable;
JamesRezo's avatar
JamesRezo a validé
use Composer\Plugin\PluginInterface;
use Composer\Script\Event;
JamesRezo's avatar
JamesRezo a validé

class SpipInstallerPlugin implements PluginInterface, EventSubscriberInterface, Capable
JamesRezo's avatar
JamesRezo a validé
{
    public function activate(Composer $composer, IOInterface $io)
    {
        $installer = new SpipInstaller($io, $composer);
marcimat's avatar
marcimat a validé
        $composer->getInstallationManager()
            ->addInstaller($installer);
JamesRezo's avatar
JamesRezo a validé
    }
marcimat's avatar
marcimat a validé
    public function deactivate(Composer $composer, IOInterface $io) {}
marcimat's avatar
marcimat a validé
    public function uninstall(Composer $composer, IOInterface $io) {}
    public static function getSubscribedEvents()
    {
        return [
JamesRezo's avatar
JamesRezo a validé
            'post-create-project-cmd' => ['onCreateProject'],
            'post-install-cmd' => ['onInstall'],
            'post-update-cmd' => ['onUpdate'],
JamesRezo's avatar
JamesRezo a validé
    public function onCreateProject(Event $event): void
    {
        BaseDirectories::createBaseDirectories($event);
        Security::copySafetyScreen($event);
    }

    public function onInstall(Event $event): void
    {
        BaseDirectories::createBaseDirectories($event, true);
        Security::copySafetyScreen($event);
        PluginsClearCache::clearCache($event);
        AssetsClearCache::clearCache($event);
        WheelsClearCache::clearCache($event);
    }

    public function onUpdate(Event $event): void
    {
        BaseDirectories::createBaseDirectories($event, true);
        Security::copySafetyScreen($event);
        PluginsClearCache::clearCache($event);
        AssetsClearCache::clearCache($event);
        WheelsClearCache::clearCache($event);
JamesRezo's avatar
JamesRezo a validé
    /**
     * @deprecated 0.8
     */
JamesRezo's avatar
JamesRezo a validé
    public function updateSafetyScreen(Event $event): void
    {
        Security::copySafetyScreen($event);
    }

    /**
     * @deprecated 0.8
     */
    public function clearCache(Event $event): void
JamesRezo's avatar
JamesRezo a validé
        PluginsClearCache::clearCache($event);
        AssetsClearCache::clearCache($event);
        WheelsClearCache::clearCache($event);
    public function getCapabilities()
    {
        return [
marcimat's avatar
marcimat a validé
            \Composer\Plugin\Capability\CommandProvider::class => \SpipLeague\Composer\CommandProvider::class,
JamesRezo's avatar
JamesRezo a validé
    }
JamesRezo's avatar
JamesRezo a validé
}