From ce3b6311b825e62a7418dd7d3c7598c6d0dffc8f Mon Sep 17 00:00:00 2001 From: Tim MacDonald Date: Sat, 25 May 2024 00:24:38 +1000 Subject: [PATCH] [1.x] Use Contracts for common services (#376) * Uses cache contract * Uses event contract * Fix code styling * Handle relay changes * Fix code styling --------- Co-authored-by: timacdonald --- src/Commands/CheckCommand.php | 2 +- src/Ingests/RedisIngest.php | 2 +- src/Recorders/Exceptions.php | 2 +- src/Recorders/Queues.php | 2 +- src/Recorders/Servers.php | 2 +- src/Recorders/SlowQueries.php | 2 +- src/Storage/DatabaseStorage.php | 2 +- src/Support/CacheStoreResolver.php | 2 +- src/Support/RedisAdapter.php | 2 +- tests/Feature/RedisTest.php | 25 +++++++++++++++---------- 10 files changed, 24 insertions(+), 19 deletions(-) diff --git a/src/Commands/CheckCommand.php b/src/Commands/CheckCommand.php index e2d821d3..004bc7ae 100644 --- a/src/Commands/CheckCommand.php +++ b/src/Commands/CheckCommand.php @@ -5,7 +5,7 @@ use Carbon\CarbonImmutable; use Illuminate\Console\Command; use Illuminate\Contracts\Cache\LockProvider; -use Illuminate\Events\Dispatcher; +use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Support\Env; use Illuminate\Support\Sleep; use Illuminate\Support\Str; diff --git a/src/Ingests/RedisIngest.php b/src/Ingests/RedisIngest.php index 43b06ac9..64b2eb27 100644 --- a/src/Ingests/RedisIngest.php +++ b/src/Ingests/RedisIngest.php @@ -4,7 +4,7 @@ use Carbon\CarbonImmutable; use Carbon\CarbonInterval; -use Illuminate\Config\Repository; +use Illuminate\Contracts\Config\Repository; use Illuminate\Redis\RedisManager; use Illuminate\Support\Collection; use Laravel\Pulse\Contracts\Ingest; diff --git a/src/Recorders/Exceptions.php b/src/Recorders/Exceptions.php index 7a7e9102..b60bf854 100644 --- a/src/Recorders/Exceptions.php +++ b/src/Recorders/Exceptions.php @@ -3,7 +3,7 @@ namespace Laravel\Pulse\Recorders; use Carbon\CarbonImmutable; -use Illuminate\Config\Repository; +use Illuminate\Contracts\Config\Repository; use Illuminate\Contracts\Debug\ExceptionHandler; use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Contracts\Foundation\Application; diff --git a/src/Recorders/Queues.php b/src/Recorders/Queues.php index f68b0020..6366de18 100644 --- a/src/Recorders/Queues.php +++ b/src/Recorders/Queues.php @@ -3,7 +3,7 @@ namespace Laravel\Pulse\Recorders; use Carbon\CarbonImmutable; -use Illuminate\Config\Repository; +use Illuminate\Contracts\Config\Repository; use Illuminate\Events\CallQueuedListener; use Illuminate\Queue\Events\JobFailed; use Illuminate\Queue\Events\JobProcessed; diff --git a/src/Recorders/Servers.php b/src/Recorders/Servers.php index cd458087..f8ce7dd8 100644 --- a/src/Recorders/Servers.php +++ b/src/Recorders/Servers.php @@ -2,7 +2,7 @@ namespace Laravel\Pulse\Recorders; -use Illuminate\Config\Repository; +use Illuminate\Contracts\Config\Repository; use Illuminate\Support\Str; use Laravel\Pulse\Events\SharedBeat; use Laravel\Pulse\Pulse; diff --git a/src/Recorders/SlowQueries.php b/src/Recorders/SlowQueries.php index a5950df9..ff1d00c5 100644 --- a/src/Recorders/SlowQueries.php +++ b/src/Recorders/SlowQueries.php @@ -3,7 +3,7 @@ namespace Laravel\Pulse\Recorders; use Carbon\CarbonImmutable; -use Illuminate\Config\Repository; +use Illuminate\Contracts\Config\Repository; use Illuminate\Database\Events\QueryExecuted; use Illuminate\Support\Str; use Laravel\Pulse\Pulse; diff --git a/src/Storage/DatabaseStorage.php b/src/Storage/DatabaseStorage.php index 6274cc6f..fb45c9ee 100644 --- a/src/Storage/DatabaseStorage.php +++ b/src/Storage/DatabaseStorage.php @@ -5,7 +5,7 @@ use Carbon\CarbonImmutable; use Carbon\CarbonInterval; use Closure; -use Illuminate\Config\Repository; +use Illuminate\Contracts\Config\Repository; use Illuminate\Database\Connection; use Illuminate\Database\DatabaseManager; use Illuminate\Database\Query\Builder; diff --git a/src/Support/CacheStoreResolver.php b/src/Support/CacheStoreResolver.php index acaf3f56..0c5b11fd 100644 --- a/src/Support/CacheStoreResolver.php +++ b/src/Support/CacheStoreResolver.php @@ -3,8 +3,8 @@ namespace Laravel\Pulse\Support; use Illuminate\Cache\CacheManager; -use Illuminate\Config\Repository as ConfigRepository; use Illuminate\Contracts\Cache\Repository as CacheRepository; +use Illuminate\Contracts\Config\Repository as ConfigRepository; class CacheStoreResolver { diff --git a/src/Support/RedisAdapter.php b/src/Support/RedisAdapter.php index eefbee20..dc8883ea 100644 --- a/src/Support/RedisAdapter.php +++ b/src/Support/RedisAdapter.php @@ -2,7 +2,7 @@ namespace Laravel\Pulse\Support; -use Illuminate\Config\Repository; +use Illuminate\Contracts\Config\Repository; use Illuminate\Redis\Connections\Connection; use Illuminate\Support\Collection; use Predis\Client as Predis; diff --git a/tests/Feature/RedisTest.php b/tests/Feature/RedisTest.php index 095f0e07..4f2d3fc1 100644 --- a/tests/Feature/RedisTest.php +++ b/tests/Feature/RedisTest.php @@ -16,7 +16,7 @@ $drivers = ['predis', 'phpredis', 'relay']; -function skipWhenExtensionMissing($driver) +function prepareForDriver($driver) { $extension = match ($driver) { 'phpredis' => 'redis', @@ -29,6 +29,11 @@ function skipWhenExtensionMissing($driver) ? test()->markTestSkipped("PHP extension [{$extension}] missing for Redis driver [{$driver}].") : null, }; + + // Relay version 0.8.0 introduced a breaking change that requires the port be an integer. + if ($driver === 'relay') { + Config::set('database.redis.default.port', (int) Config::get('database.redis.default.port')); + } } beforeEach(function () { @@ -40,7 +45,7 @@ function skipWhenExtensionMissing($driver) }); it('runs the same commands while ingesting entries', function ($driver) { - skipWhenExtensionMissing($driver); + prepareForDriver($driver); Config::set('database.redis.client', $driver); @@ -52,7 +57,7 @@ function skipWhenExtensionMissing($driver) })->with($drivers); it('keeps 7 days of data, by default, when trimming', function ($driver) { - skipWhenExtensionMissing($driver); + prepareForDriver($driver); Config::set('database.redis.client', $driver); Date::setTestNow(Date::parse('2000-01-02 03:04:05')->startOfSecond()); @@ -63,7 +68,7 @@ function skipWhenExtensionMissing($driver) })->with($drivers); it('can configure days of data to keep when trimming', function ($driver) { - skipWhenExtensionMissing($driver); + prepareForDriver($driver); Config::set('database.redis.client', $driver); Date::setTestNow(Date::parse('2000-01-02 03:04:05')->startOfSecond()); @@ -75,7 +80,7 @@ function skipWhenExtensionMissing($driver) })->with($drivers); it('can configure the number of entries to keep when trimming', function ($driver) { - skipWhenExtensionMissing($driver); + prepareForDriver($driver); Config::set('database.redis.client', $driver); Date::setTestNow(Date::parse('2000-01-02 03:04:05')->startOfSecond()); @@ -87,7 +92,7 @@ function skipWhenExtensionMissing($driver) })->with($drivers); it('runs the same commands while storing', function ($driver) { - skipWhenExtensionMissing($driver); + prepareForDriver($driver); Config::set('database.redis.client', $driver); Config::set('pulse.ingest.redis.chunk', 567); @@ -110,7 +115,7 @@ function skipWhenExtensionMissing($driver) })->with($drivers); it('has consistent return for xadd', function ($driver) { - skipWhenExtensionMissing($driver); + prepareForDriver($driver); Config::set('database.redis.client', $driver); $redis = new RedisAdapter(Redis::connection(), App::make('config')); @@ -128,7 +133,7 @@ function skipWhenExtensionMissing($driver) })->with($drivers); it('has consistent return for xrange', function ($driver) { - skipWhenExtensionMissing($driver); + prepareForDriver($driver); Config::set('database.redis.client', $driver); $redis = new RedisAdapter(Redis::connection(), App::make('config')); @@ -159,7 +164,7 @@ function skipWhenExtensionMissing($driver) })->with($drivers); it('has consistent return for xtrim', function ($driver) { - skipWhenExtensionMissing($driver); + prepareForDriver($driver); Config::set('database.redis.client', $driver); $redis = new RedisAdapter(Redis::connection(), App::make('config')); @@ -186,7 +191,7 @@ function skipWhenExtensionMissing($driver) })->with($drivers); it('throws exception on failure', function ($driver) { - skipWhenExtensionMissing($driver); + prepareForDriver($driver); Config::set('database.redis.client', $driver); $redis = new RedisAdapter(Redis::connection(), App::make('config'));