diff --git a/framework/core/composer.json b/framework/core/composer.json index 0450dc0e9..47fdefa9c 100644 --- a/framework/core/composer.json +++ b/framework/core/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/framework/core/src/Console/Event/Configuring.php b/framework/core/src/Console/Event/Configuring.php index aace4860a..28cce8411 100644 --- a/framework/core/src/Console/Event/Configuring.php +++ b/framework/core/src/Console/Event/Configuring.php @@ -14,6 +14,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. @@ -31,15 +32,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/framework/core/src/Console/Server.php b/framework/core/src/Console/Server.php index d55e14dba..2d5000501 100644 --- a/framework/core/src/Console/Server.php +++ b/framework/core/src/Console/Server.php @@ -16,6 +16,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 { @@ -46,6 +47,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); } }