From 14333a253d608e8bc4133348a3e0dba99f1e4753 Mon Sep 17 00:00:00 2001 From: lukinovec Date: Tue, 13 Dec 2022 11:55:06 +0100 Subject: [PATCH] Bind the original broadcaster instance on `revert()` --- src/Bootstrappers/BroadcastTenancyBootstrapper.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/Bootstrappers/BroadcastTenancyBootstrapper.php b/src/Bootstrappers/BroadcastTenancyBootstrapper.php index f1c0d1b3..542e76d2 100644 --- a/src/Bootstrappers/BroadcastTenancyBootstrapper.php +++ b/src/Bootstrappers/BroadcastTenancyBootstrapper.php @@ -4,12 +4,13 @@ declare(strict_types=1); namespace Stancl\Tenancy\Bootstrappers; -use Illuminate\Broadcasting\BroadcastManager; use Illuminate\Config\Repository; -use Illuminate\Foundation\Application; -use Stancl\Tenancy\Contracts\TenancyBootstrapper; use Stancl\Tenancy\Contracts\Tenant; +use Illuminate\Foundation\Application; use Stancl\Tenancy\TenancyBroadcastManager; +use Illuminate\Broadcasting\BroadcastManager; +use Stancl\Tenancy\Contracts\TenancyBootstrapper; +use Illuminate\Contracts\Broadcasting\Broadcaster; class BroadcastTenancyBootstrapper implements TenancyBootstrapper { @@ -27,6 +28,7 @@ class BroadcastTenancyBootstrapper implements TenancyBootstrapper protected array $originalConfig = []; protected BroadcastManager|null $originalBroadcastManager = null; + protected Broadcaster|null $originalBroadcaster = null; public static array $mapPresets = [ 'pusher' => [ @@ -51,9 +53,10 @@ class BroadcastTenancyBootstrapper implements TenancyBootstrapper public function bootstrap(Tenant $tenant): void { - $this->setConfig($tenant); - $this->originalBroadcastManager = $this->app->make(BroadcastManager::class); + $this->originalBroadcaster = $this->app->make(Broadcaster::class); + + $this->setConfig($tenant); $this->app->extend(BroadcastManager::class, function (BroadcastManager $broadcastManager) { $tenancyBroadcastManager = new TenancyBroadcastManager($this->app); @@ -65,6 +68,7 @@ class BroadcastTenancyBootstrapper implements TenancyBootstrapper public function revert(): void { $this->app->singleton(BroadcastManager::class, fn (Application $app) => $this->originalBroadcastManager); + $this->app->singleton(Broadcaster::class, fn (Application $app) => $this->originalBroadcaster); $this->unsetConfig(); }