From 00a00a2affa68dda1c29efb5017e4df64e2809c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20=C5=A0tancl?= Date: Wed, 20 Dec 2023 12:23:37 +0100 Subject: [PATCH] Pass BroadcastManager to override closures (#23) * pass BroadcastManager to override closures * Improve the broadcaster override syntax in the bootstrapper test * remove unnecessary return --------- Co-authored-by: lukinovec --- .../BroadcastChannelPrefixBootstrapper.php | 14 +++++--------- tests/BootstrapperTest.php | 4 ++-- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/Bootstrappers/BroadcastChannelPrefixBootstrapper.php b/src/Bootstrappers/BroadcastChannelPrefixBootstrapper.php index 12923fb7..9a6f588e 100644 --- a/src/Bootstrappers/BroadcastChannelPrefixBootstrapper.php +++ b/src/Bootstrappers/BroadcastChannelPrefixBootstrapper.php @@ -49,7 +49,7 @@ class BroadcastChannelPrefixBootstrapper implements TenancyBootstrapper // Delete the cached broadcaster, so that the manager uses the new one $this->broadcastManager->purge($broadcaster); - $broadcasterOverride(); + $broadcasterOverride($this->broadcastManager); // Get the overriden broadcaster $newBroadcaster = $this->broadcastManager->driver($broadcaster); @@ -83,10 +83,8 @@ class BroadcastChannelPrefixBootstrapper implements TenancyBootstrapper */ public static function pusher(Closure|null $override = null): void { - static::$broadcasterOverrides['pusher'] = $override ?? function () { - $broadcastManager = app(BroadcastManager::class); - - return $broadcastManager->extend('pusher', function ($app, $config) use ($broadcastManager) { + static::$broadcasterOverrides['pusher'] = $override ?? function (BroadcastManager $broadcastManager): void { + $broadcastManager->extend('pusher', function ($app, $config) use ($broadcastManager) { return new class($broadcastManager->pusher($config)) extends PusherBroadcaster { protected function formatChannels(array $channels) { @@ -125,10 +123,8 @@ class BroadcastChannelPrefixBootstrapper implements TenancyBootstrapper */ public static function ably(Closure|null $override = null): void { - static::$broadcasterOverrides['ably'] = $override ?? function () { - $broadcastManager = app(BroadcastManager::class); - - return $broadcastManager->extend('ably', function ($app, $config) use ($broadcastManager) { + static::$broadcasterOverrides['ably'] = $override ?? function (BroadcastManager $broadcastManager): void { + $broadcastManager->extend('ably', function ($app, $config) use ($broadcastManager) { return new class($broadcastManager->ably($config)) extends AblyBroadcaster { protected function formatChannels(array $channels) { diff --git a/tests/BootstrapperTest.php b/tests/BootstrapperTest.php index ba87e717..588ca017 100644 --- a/tests/BootstrapperTest.php +++ b/tests/BootstrapperTest.php @@ -788,8 +788,8 @@ test('BroadcastChannelPrefixBootstrapper prefixes the channels events are broadc // Set up the 'testing' broadcaster override // Identical to the default Pusher override (BroadcastChannelPrefixBootstrapper::pusher()) // Except for the parent class (TestingBroadcaster instead of PusherBroadcaster) - BroadcastChannelPrefixBootstrapper::$broadcasterOverrides['testing'] = function () { - return app(BroadcastManager::class)->extend('testing', function ($app, $config) { + BroadcastChannelPrefixBootstrapper::$broadcasterOverrides['testing'] = function (BroadcastManager $broadcastManager) { + $broadcastManager->extend('testing', function ($app, $config) { return new class('tenant broadcaster') extends TestingBroadcaster { protected function formatChannels(array $channels) {