diff --git a/composer.json b/composer.json index 0450dc0e9..47fdefa9c 100644 --- a/composer.json +++ b/composer.json @@ -60,6 +60,7 @@ "s9e/text-formatter": "^1.2.0", "symfony/config": "^3.3", "symfony/console": "^4.2", + "symfony/event-dispatcher": "^4.3.2", "symfony/translation": "^3.3", "symfony/yaml": "^3.3", "tobscure/json-api": "^0.3.0", diff --git a/src/Console/Event/Configuring.php b/src/Console/Event/Configuring.php index 21ff22a0a..06d580fd6 100644 --- a/src/Console/Event/Configuring.php +++ b/src/Console/Event/Configuring.php @@ -12,6 +12,7 @@ namespace Flarum\Console\Event; use Flarum\Foundation\Application; use Illuminate\Console\Command; use Symfony\Component\Console\Application as ConsoleApplication; +use Symfony\Component\EventDispatcher\EventDispatcher; /** * Configure the console application. @@ -29,15 +30,21 @@ class Configuring * @var ConsoleApplication */ public $console; + /** + * @var EventDispatcher + */ + public $eventDispatcher; /** - * @param Application $app + * @param Application $app * @param ConsoleApplication $console + * @param EventDispatcher $eventDispatcher */ - public function __construct(Application $app, ConsoleApplication $console) + public function __construct(Application $app, ConsoleApplication $console, EventDispatcher $eventDispatcher) { $this->app = $app; $this->console = $console; + $this->eventDispatcher = $eventDispatcher; } /** diff --git a/src/Console/Server.php b/src/Console/Server.php index f071d1171..24225cb2f 100644 --- a/src/Console/Server.php +++ b/src/Console/Server.php @@ -14,6 +14,7 @@ use Flarum\Foundation\Application; use Flarum\Foundation\SiteInterface; use Illuminate\Contracts\Events\Dispatcher; use Symfony\Component\Console\Application as ConsoleApplication; +use Symfony\Component\EventDispatcher\EventDispatcher; class Server { @@ -44,6 +45,8 @@ class Server $app = Application::getInstance(); $events = $app->make(Dispatcher::class); - $events->fire(new Configuring($app, $console)); + $events->fire(new Configuring($app, $console, $dispatcher = new EventDispatcher())); + + $console->setDispatcher($dispatcher); } }