diff --git a/extensions/package-manager/src/Command/GlobalUpdateHandler.php b/extensions/package-manager/src/Command/GlobalUpdateHandler.php index d5032bf9a..4b4e6e106 100644 --- a/extensions/package-manager/src/Command/GlobalUpdateHandler.php +++ b/extensions/package-manager/src/Command/GlobalUpdateHandler.php @@ -55,12 +55,8 @@ class GlobalUpdateHandler throw new ComposerUpdateFailedException('*', $output->getContents()); } - $this->commandDispatcher->dispatch( - new CheckForUpdates($command->actor) - ); - $this->events->dispatch( - new FlarumUpdated(FlarumUpdated::GLOBAL) + new FlarumUpdated($command->actor, FlarumUpdated::GLOBAL) ); return true; diff --git a/extensions/package-manager/src/Command/MajorUpdateHandler.php b/extensions/package-manager/src/Command/MajorUpdateHandler.php index e471b5236..c316b3729 100644 --- a/extensions/package-manager/src/Command/MajorUpdateHandler.php +++ b/extensions/package-manager/src/Command/MajorUpdateHandler.php @@ -84,10 +84,8 @@ class MajorUpdateHandler return true; } - $this->lastUpdateCheck->forgetAll(); - $this->events->dispatch( - new FlarumUpdated(FlarumUpdated::MAJOR) + new FlarumUpdated($command->actor, FlarumUpdated::MAJOR) ); return true; diff --git a/extensions/package-manager/src/Command/MinorUpdateHandler.php b/extensions/package-manager/src/Command/MinorUpdateHandler.php index 7ead1bdea..c5af1b869 100755 --- a/extensions/package-manager/src/Command/MinorUpdateHandler.php +++ b/extensions/package-manager/src/Command/MinorUpdateHandler.php @@ -68,10 +68,8 @@ class MinorUpdateHandler throw new ComposerUpdateFailedException('flarum/*', $output->getContents()); } - $this->lastUpdateCheck->forgetAll(); - $this->events->dispatch( - new FlarumUpdated(FlarumUpdated::MINOR) + new FlarumUpdated($command->actor, FlarumUpdated::MINOR) ); return true; diff --git a/extensions/package-manager/src/Event/FlarumUpdated.php b/extensions/package-manager/src/Event/FlarumUpdated.php index cd2b71da3..85194666c 100644 --- a/extensions/package-manager/src/Event/FlarumUpdated.php +++ b/extensions/package-manager/src/Event/FlarumUpdated.php @@ -9,19 +9,27 @@ namespace Flarum\PackageManager\Event; +use Flarum\User\User; + class FlarumUpdated { public const GLOBAL = 'global'; public const MAJOR = 'major'; public const MINOR = 'minor'; + /** + * @var User + */ + public $actor; + /** * @var string */ public $type; - public function __construct(string $type) + public function __construct(User $actor, string $type) { + $this->actor = $actor; $this->type = $type; } } diff --git a/extensions/package-manager/src/LastUpdateCheck.php b/extensions/package-manager/src/LastUpdateCheck.php index c9d4d1352..c30220d35 100755 --- a/extensions/package-manager/src/LastUpdateCheck.php +++ b/extensions/package-manager/src/LastUpdateCheck.php @@ -79,9 +79,4 @@ class LastUpdateCheck } } } - - public function forgetAll(): void - { - $this->save([]); - } } diff --git a/extensions/package-manager/src/Listener/PostUpdateListener.php b/extensions/package-manager/src/Listener/FlarumUpdateListener.php similarity index 69% rename from extensions/package-manager/src/Listener/PostUpdateListener.php rename to extensions/package-manager/src/Listener/FlarumUpdateListener.php index 4c0eb9e51..57ff839aa 100644 --- a/extensions/package-manager/src/Listener/PostUpdateListener.php +++ b/extensions/package-manager/src/Listener/FlarumUpdateListener.php @@ -10,13 +10,15 @@ namespace Flarum\PackageManager\Listener; use Composer\Command\ClearCacheCommand; +use Flarum\Bus\Dispatcher; use Flarum\Database\Console\MigrateCommand; use Flarum\Foundation\Console\AssetsPublishCommand; +use Flarum\PackageManager\Command\CheckForUpdates; use Flarum\PackageManager\Event\FlarumUpdated; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Output\NullOutput; -class PostUpdateListener +class FlarumUpdateListener { /** * @var ClearCacheCommand @@ -33,11 +35,23 @@ class PostUpdateListener */ private $migrate; - public function __construct(ClearCacheCommand $clearCache, AssetsPublishCommand $publishAssets, MigrateCommand $migrate) + /** + * @var Dispatcher + */ + private $bus; + + /** + * @param ClearCacheCommand $clearCache + * @param AssetsPublishCommand $publishAssets + * @param MigrateCommand $migrate + * @param Dispatcher $bus + */ + public function __construct(ClearCacheCommand $clearCache, AssetsPublishCommand $publishAssets, MigrateCommand $migrate, Dispatcher $bus) { $this->clearCache = $clearCache; $this->publishAssets = $publishAssets; $this->migrate = $migrate; + $this->bus = $bus; } /** @@ -48,5 +62,9 @@ class PostUpdateListener $this->clearCache->run(new ArrayInput([]), new NullOutput()); $this->migrate->run(new ArrayInput([]), new NullOutput()); $this->publishAssets->run(new ArrayInput([]), new NullOutput()); + + $this->bus->dispatch( + new CheckForUpdates($event->actor) + ); } } diff --git a/extensions/package-manager/src/PackageManagerServiceProvider.php b/extensions/package-manager/src/PackageManagerServiceProvider.php index 7c65a6e05..1da9a1d2c 100755 --- a/extensions/package-manager/src/PackageManagerServiceProvider.php +++ b/extensions/package-manager/src/PackageManagerServiceProvider.php @@ -24,7 +24,7 @@ use Monolog\Handler\RotatingFileHandler; use Monolog\Logger; use Flarum\PackageManager\Event\FlarumUpdated; use Flarum\PackageManager\Extension\Event\Updated; -use Flarum\PackageManager\Listener\PostUpdateListener; +use Flarum\PackageManager\Listener\FlarumUpdateListener; class PackageManagerServiceProvider extends AbstractServiceProvider { @@ -89,6 +89,6 @@ class PackageManagerServiceProvider extends AbstractServiceProvider } ); - $events->listen(FlarumUpdated::class, PostUpdateListener::class); + $events->listen(FlarumUpdated::class, FlarumUpdateListener::class); } }