From cd3706e2bb8f772ea0d3975bd1e585129bb4349c Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Mon, 18 Nov 2024 16:42:04 +0800 Subject: [PATCH 01/21] [11.x] Supports `laravel/serializable-closure` 2 Signed-off-by: Mior Muhammad Zaki --- composer.json | 4 +- .../SerializableVersionOneCacheRouteTest.php | 62 +++++++ .../serializable-closure-v1/routes-v7.php | 151 ++++++++++++++++++ 3 files changed, 215 insertions(+), 2 deletions(-) create mode 100644 tests/Integration/Routing/SerializableVersionOneCacheRouteTest.php create mode 100644 tests/Integration/Routing/stubs/serializable-closure-v1/routes-v7.php diff --git a/composer.json b/composer.json index b035062f8f4c..a5a01d2da42b 100644 --- a/composer.json +++ b/composer.json @@ -32,7 +32,7 @@ "guzzlehttp/guzzle": "^7.8", "guzzlehttp/uri-template": "^1.0", "laravel/prompts": "^0.1.18|^0.2.0|^0.3.0", - "laravel/serializable-closure": "^1.3", + "laravel/serializable-closure": "^2.0@dev", "league/commonmark": "^2.2.1", "league/flysystem": "^3.8.0", "monolog/monolog": "^3.0", @@ -107,7 +107,7 @@ "league/flysystem-sftp-v3": "^3.0", "mockery/mockery": "^1.6", "nyholm/psr7": "^1.2", - "orchestra/testbench-core": "^9.5", + "orchestra/testbench-core": "9.x-dev", "pda/pheanstalk": "^5.0", "phpstan/phpstan": "^1.11.5", "phpunit/phpunit": "^10.5|^11.0", diff --git a/tests/Integration/Routing/SerializableVersionOneCacheRouteTest.php b/tests/Integration/Routing/SerializableVersionOneCacheRouteTest.php new file mode 100644 index 000000000000..a9b4c1363aad --- /dev/null +++ b/tests/Integration/Routing/SerializableVersionOneCacheRouteTest.php @@ -0,0 +1,62 @@ +create(); + + $this->assertTrue($this->app->routesAreCached()); + + $this->get('/')->assertSee('Laravel'); + + $this->get("/users/{$user->getKey()}") + ->assertJson($user->toArray()); + } +} diff --git a/tests/Integration/Routing/stubs/serializable-closure-v1/routes-v7.php b/tests/Integration/Routing/stubs/serializable-closure-v1/routes-v7.php new file mode 100644 index 000000000000..6ea6ae492265 --- /dev/null +++ b/tests/Integration/Routing/stubs/serializable-closure-v1/routes-v7.php @@ -0,0 +1,151 @@ +setCompiledRoutes( + array ( + 'compiled' => + array ( + 0 => false, + 1 => + array ( + '/' => + array ( + 0 => + array ( + 0 => + array ( + '_route' => 'generated::7CFionvE02fEbBNP', + ), + 1 => NULL, + 2 => + array ( + 'GET' => 0, + 'HEAD' => 1, + ), + 3 => NULL, + 4 => false, + 5 => false, + 6 => NULL, + ), + ), + ), + 2 => + array ( + 0 => '{^(?|/users/([^/]++)(*:22))/?$}sDu', + ), + 3 => + array ( + 22 => + array ( + 0 => + array ( + 0 => + array ( + '_route' => 'generated::YmZUvOCRFrqhC2sO', + ), + 1 => + array ( + 0 => 'user', + ), + 2 => + array ( + 'GET' => 0, + 'HEAD' => 1, + ), + 3 => NULL, + 4 => false, + 5 => true, + 6 => NULL, + ), + 1 => + array ( + 0 => NULL, + 1 => NULL, + 2 => NULL, + 3 => NULL, + 4 => false, + 5 => false, + 6 => 0, + ), + ), + ), + 4 => NULL, + ), + 'attributes' => + array ( + 'generated::7CFionvE02fEbBNP' => + array ( + 'methods' => + array ( + 0 => 'GET', + 1 => 'HEAD', + ), + 'uri' => '/', + 'action' => + array ( + 'middleware' => + array ( + 0 => 'web', + ), + 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:44:"function () { + return \\view(\'welcome\'); +}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"00000000000002f00000000000000000";}}', + 'namespace' => NULL, + 'prefix' => '', + 'where' => + array ( + ), + 'as' => 'generated::7CFionvE02fEbBNP', + ), + 'fallback' => false, + 'defaults' => + array ( + ), + 'wheres' => + array ( + ), + 'bindingFields' => + array ( + ), + 'lockSeconds' => NULL, + 'waitSeconds' => NULL, + 'withTrashed' => false, + ), + 'generated::YmZUvOCRFrqhC2sO' => + array ( + 'methods' => + array ( + 0 => 'GET', + 1 => 'HEAD', + ), + 'uri' => 'users/{user}', + 'action' => + array ( + 'middleware' => + array ( + 0 => 'web', + ), + 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:52:"fn (\\Illuminate\\Foundation\\Auth\\User $user) => $user";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"00000000000002f20000000000000000";}}', + 'namespace' => NULL, + 'prefix' => '', + 'where' => + array ( + ), + 'as' => 'generated::YmZUvOCRFrqhC2sO', + ), + 'fallback' => false, + 'defaults' => + array ( + ), + 'wheres' => + array ( + ), + 'bindingFields' => + array ( + ), + 'lockSeconds' => NULL, + 'waitSeconds' => NULL, + 'withTrashed' => false, + ), + ), +) +); From e7bd462c50c8872f62189748c6a74a002474fd57 Mon Sep 17 00:00:00 2001 From: StyleCI Bot Date: Mon, 18 Nov 2024 08:42:46 +0000 Subject: [PATCH 02/21] Apply fixes from StyleCI --- .../SerializableVersionOneCacheRouteTest.php | 2 +- .../serializable-closure-v1/routes-v7.php | 259 ++++++++---------- 2 files changed, 115 insertions(+), 146 deletions(-) diff --git a/tests/Integration/Routing/SerializableVersionOneCacheRouteTest.php b/tests/Integration/Routing/SerializableVersionOneCacheRouteTest.php index a9b4c1363aad..c2d7dd87d74e 100644 --- a/tests/Integration/Routing/SerializableVersionOneCacheRouteTest.php +++ b/tests/Integration/Routing/SerializableVersionOneCacheRouteTest.php @@ -8,8 +8,8 @@ use Orchestra\Testbench\Concerns\InteractsWithPublishedFiles; use Orchestra\Testbench\Factories\UserFactory; use Orchestra\Testbench\TestCase; + use function Illuminate\Filesystem\join_paths; -use function Orchestra\Testbench\default_skeleton_path; #[WithConfig('app.key', 'AckfSECXIvnK5r28GVIWUAxmbBSjTsmF')] #[WithMigration] diff --git a/tests/Integration/Routing/stubs/serializable-closure-v1/routes-v7.php b/tests/Integration/Routing/stubs/serializable-closure-v1/routes-v7.php index 6ea6ae492265..ee6eecd5ff4d 100644 --- a/tests/Integration/Routing/stubs/serializable-closure-v1/routes-v7.php +++ b/tests/Integration/Routing/stubs/serializable-closure-v1/routes-v7.php @@ -1,151 +1,120 @@ setCompiledRoutes( - array ( - 'compiled' => - array ( - 0 => false, - 1 => - array ( - '/' => - array ( - 0 => - array ( - 0 => - array ( - '_route' => 'generated::7CFionvE02fEbBNP', - ), - 1 => NULL, - 2 => - array ( - 'GET' => 0, - 'HEAD' => 1, - ), - 3 => NULL, - 4 => false, - 5 => false, - 6 => NULL, - ), - ), - ), - 2 => - array ( - 0 => '{^(?|/users/([^/]++)(*:22))/?$}sDu', - ), - 3 => - array ( - 22 => - array ( - 0 => - array ( - 0 => - array ( - '_route' => 'generated::YmZUvOCRFrqhC2sO', - ), - 1 => - array ( - 0 => 'user', - ), - 2 => - array ( - 'GET' => 0, - 'HEAD' => 1, - ), - 3 => NULL, - 4 => false, - 5 => true, - 6 => NULL, - ), - 1 => - array ( - 0 => NULL, - 1 => NULL, - 2 => NULL, - 3 => NULL, - 4 => false, - 5 => false, - 6 => 0, - ), - ), - ), - 4 => NULL, - ), - 'attributes' => - array ( - 'generated::7CFionvE02fEbBNP' => - array ( - 'methods' => - array ( - 0 => 'GET', - 1 => 'HEAD', - ), - 'uri' => '/', - 'action' => - array ( - 'middleware' => - array ( - 0 => 'web', - ), - 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:44:"function () { + [ + 'compiled' => [ + 0 => false, + 1 => [ + '/' => [ + 0 => [ + 0 => [ + '_route' => 'generated::7CFionvE02fEbBNP', + ], + 1 => null, + 2 => [ + 'GET' => 0, + 'HEAD' => 1, + ], + 3 => null, + 4 => false, + 5 => false, + 6 => null, + ], + ], + ], + 2 => [ + 0 => '{^(?|/users/([^/]++)(*:22))/?$}sDu', + ], + 3 => [ + 22 => [ + 0 => [ + 0 => [ + '_route' => 'generated::YmZUvOCRFrqhC2sO', + ], + 1 => [ + 0 => 'user', + ], + 2 => [ + 'GET' => 0, + 'HEAD' => 1, + ], + 3 => null, + 4 => false, + 5 => true, + 6 => null, + ], + 1 => [ + 0 => null, + 1 => null, + 2 => null, + 3 => null, + 4 => false, + 5 => false, + 6 => 0, + ], + ], + ], + 4 => null, + ], + 'attributes' => [ + 'generated::7CFionvE02fEbBNP' => [ + 'methods' => [ + 0 => 'GET', + 1 => 'HEAD', + ], + 'uri' => '/', + 'action' => [ + 'middleware' => [ + 0 => 'web', + ], + 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:44:"function () { return \\view(\'welcome\'); }";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"00000000000002f00000000000000000";}}', - 'namespace' => NULL, - 'prefix' => '', - 'where' => - array ( - ), - 'as' => 'generated::7CFionvE02fEbBNP', - ), - 'fallback' => false, - 'defaults' => - array ( - ), - 'wheres' => - array ( - ), - 'bindingFields' => - array ( - ), - 'lockSeconds' => NULL, - 'waitSeconds' => NULL, - 'withTrashed' => false, - ), - 'generated::YmZUvOCRFrqhC2sO' => - array ( - 'methods' => - array ( - 0 => 'GET', - 1 => 'HEAD', - ), - 'uri' => 'users/{user}', - 'action' => - array ( - 'middleware' => - array ( - 0 => 'web', - ), - 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:52:"fn (\\Illuminate\\Foundation\\Auth\\User $user) => $user";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"00000000000002f20000000000000000";}}', - 'namespace' => NULL, - 'prefix' => '', - 'where' => - array ( - ), - 'as' => 'generated::YmZUvOCRFrqhC2sO', - ), - 'fallback' => false, - 'defaults' => - array ( - ), - 'wheres' => - array ( - ), - 'bindingFields' => - array ( - ), - 'lockSeconds' => NULL, - 'waitSeconds' => NULL, - 'withTrashed' => false, - ), - ), -) + 'namespace' => null, + 'prefix' => '', + 'where' => [ + ], + 'as' => 'generated::7CFionvE02fEbBNP', + ], + 'fallback' => false, + 'defaults' => [ + ], + 'wheres' => [ + ], + 'bindingFields' => [ + ], + 'lockSeconds' => null, + 'waitSeconds' => null, + 'withTrashed' => false, + ], + 'generated::YmZUvOCRFrqhC2sO' => [ + 'methods' => [ + 0 => 'GET', + 1 => 'HEAD', + ], + 'uri' => 'users/{user}', + 'action' => [ + 'middleware' => [ + 0 => 'web', + ], + 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:52:"fn (\\Illuminate\\Foundation\\Auth\\User $user) => $user";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"00000000000002f20000000000000000";}}', + 'namespace' => null, + 'prefix' => '', + 'where' => [ + ], + 'as' => 'generated::YmZUvOCRFrqhC2sO', + ], + 'fallback' => false, + 'defaults' => [ + ], + 'wheres' => [ + ], + 'bindingFields' => [ + ], + 'lockSeconds' => null, + 'waitSeconds' => null, + 'withTrashed' => false, + ], + ], + ] ); From 4a9417017172a256afdb7d5e2c754b3bf3fc1033 Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Mon, 18 Nov 2024 16:45:04 +0800 Subject: [PATCH 03/21] wip Signed-off-by: Mior Muhammad Zaki --- .../Routing/SerializableVersionOneCacheRouteTest.php | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/tests/Integration/Routing/SerializableVersionOneCacheRouteTest.php b/tests/Integration/Routing/SerializableVersionOneCacheRouteTest.php index c2d7dd87d74e..7839e39d676c 100644 --- a/tests/Integration/Routing/SerializableVersionOneCacheRouteTest.php +++ b/tests/Integration/Routing/SerializableVersionOneCacheRouteTest.php @@ -5,7 +5,6 @@ use Illuminate\Foundation\Testing\RefreshDatabase; use Orchestra\Testbench\Attributes\WithConfig; use Orchestra\Testbench\Attributes\WithMigration; -use Orchestra\Testbench\Concerns\InteractsWithPublishedFiles; use Orchestra\Testbench\Factories\UserFactory; use Orchestra\Testbench\TestCase; @@ -15,11 +14,7 @@ #[WithMigration] class SerializableVersionOneCacheRouteTest extends TestCase { - use InteractsWithPublishedFiles, RefreshDatabase; - - protected $files = [ - 'bootstrap/cache/routes-v*.php', - ]; + use RefreshDatabase; /** {@inheritDoc} */ #[\Override] From d3e7371bb41937b9cddb1e1d0d4b977d27704959 Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Mon, 18 Nov 2024 16:46:48 +0800 Subject: [PATCH 04/21] wip Signed-off-by: Mior Muhammad Zaki --- ...cheRouteTest.php => SerializableClosureV1CacheRouteTest.php} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename tests/Integration/Routing/{SerializableVersionOneCacheRouteTest.php => SerializableClosureV1CacheRouteTest.php} (95%) diff --git a/tests/Integration/Routing/SerializableVersionOneCacheRouteTest.php b/tests/Integration/Routing/SerializableClosureV1CacheRouteTest.php similarity index 95% rename from tests/Integration/Routing/SerializableVersionOneCacheRouteTest.php rename to tests/Integration/Routing/SerializableClosureV1CacheRouteTest.php index 7839e39d676c..ad21c9ff862a 100644 --- a/tests/Integration/Routing/SerializableVersionOneCacheRouteTest.php +++ b/tests/Integration/Routing/SerializableClosureV1CacheRouteTest.php @@ -12,7 +12,7 @@ #[WithConfig('app.key', 'AckfSECXIvnK5r28GVIWUAxmbBSjTsmF')] #[WithMigration] -class SerializableVersionOneCacheRouteTest extends TestCase +class SerializableClosureV1CacheRouteTest extends TestCase { use RefreshDatabase; From 9ba37aeff8503d7e06cf001ca10a25daa78c8c95 Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Mon, 18 Nov 2024 17:33:54 +0800 Subject: [PATCH 05/21] wip Signed-off-by: Mior Muhammad Zaki --- .../Queue/Fixtures/Jobs/DeleteUser.php | 27 ++++++++++ .../Queue/SerializableClosureV1QueueTest.php | 52 +++++++++++++++++++ .../SerializableClosureV1CacheRouteTest.php | 2 +- 3 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 tests/Integration/Queue/Fixtures/Jobs/DeleteUser.php create mode 100644 tests/Integration/Queue/SerializableClosureV1QueueTest.php diff --git a/tests/Integration/Queue/Fixtures/Jobs/DeleteUser.php b/tests/Integration/Queue/Fixtures/Jobs/DeleteUser.php new file mode 100644 index 000000000000..47a13fb7eeb2 --- /dev/null +++ b/tests/Integration/Queue/Fixtures/Jobs/DeleteUser.php @@ -0,0 +1,27 @@ +user->delete(); + } +} diff --git a/tests/Integration/Queue/SerializableClosureV1QueueTest.php b/tests/Integration/Queue/SerializableClosureV1QueueTest.php new file mode 100644 index 000000000000..5cf3c4bb095d --- /dev/null +++ b/tests/Integration/Queue/SerializableClosureV1QueueTest.php @@ -0,0 +1,52 @@ +create([ + 'id' => 100, + 'name' => 'Taylor Otwell', + 'email' => 'taylor@laravel.com', + 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', + ]); + + DB::table('jobs')->insert([ + 'queue' => 'default', + 'payload' => '{"uuid":"d9701f94-9e3a-4a02-b3a4-215c35c7e54c","displayName":"Illuminate\\\Tests\\\Integration\\\Queue\\\Fixtures\\\Jobs\\\DeleteUser","job":"Illuminate\\\Queue\\\CallQueuedHandler@call","maxTries":null,"maxExceptions":null,"failOnTimeout":false,"backoff":null,"timeout":null,"retryUntil":null,"data":{"commandName":"Illuminate\\\Tests\\\Integration\\\Queue\\\Fixtures\\\Jobs\\\DeleteUser","command":"O:59:\"Illuminate\\\Tests\\\Integration\\\Queue\\\Fixtures\\\Jobs\\\DeleteUser\":1:{s:4:\"user\";O:45:\"Illuminate\\\Contracts\\\Database\\\ModelIdentifier\":5:{s:5:\"class\";s:31:\"Illuminate\\\Foundation\\\Auth\\\User\";s:2:\"id\";i:100;s:9:\"relations\";a:0:{}s:10:\"connection\";s:7:\"testing\";s:15:\"collectionClass\";N;}}"}}', + 'attempts' => 0, + 'available_at' => 1731919764, + 'created_at' => 1731919764, + ]); + } + + public function testItCanProcessQueueFromSerializableClosureV1() + { + $this->assertDatabaseHas('users', [ + 'name' => 'Taylor Otwell', + 'email' => 'taylor@laravel.com', + ]); + + $payload = json_decode(DB::table('jobs')->value('payload'), true); + + $command = unserialize($payload['data']['command']); + + $this->assertInstanceOf(Fixtures\Jobs\DeleteUser::class, $command); + $this->assertInstanceOf(User::class, $command->user); + } +} diff --git a/tests/Integration/Routing/SerializableClosureV1CacheRouteTest.php b/tests/Integration/Routing/SerializableClosureV1CacheRouteTest.php index ad21c9ff862a..96606b08708a 100644 --- a/tests/Integration/Routing/SerializableClosureV1CacheRouteTest.php +++ b/tests/Integration/Routing/SerializableClosureV1CacheRouteTest.php @@ -43,7 +43,7 @@ protected function tearDown(): void parent::tearDown(); } - public function testItCanCachedRoute() + public function testItCanUseCachedRouteFromSerializableClosureV1() { $user = UserFactory::new()->create(); From 24bf692b919a35a3a0e3ed6b8d551cd233213963 Mon Sep 17 00:00:00 2001 From: StyleCI Bot Date: Mon, 18 Nov 2024 09:34:22 +0000 Subject: [PATCH 06/21] Apply fixes from StyleCI --- tests/Integration/Queue/Fixtures/Jobs/DeleteUser.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/Integration/Queue/Fixtures/Jobs/DeleteUser.php b/tests/Integration/Queue/Fixtures/Jobs/DeleteUser.php index 47a13fb7eeb2..f3d6ec666823 100644 --- a/tests/Integration/Queue/Fixtures/Jobs/DeleteUser.php +++ b/tests/Integration/Queue/Fixtures/Jobs/DeleteUser.php @@ -15,7 +15,8 @@ class DeleteUser implements ShouldQueue */ public function __construct( public User $user - ) {} + ) { + } /** * Execute the job. From 268cc1da6864dfaf4287b83c8a85e1a0dd90eed4 Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Mon, 18 Nov 2024 17:42:57 +0800 Subject: [PATCH 07/21] wip Signed-off-by: Mior Muhammad Zaki --- .../Integration/Routing/SerializableClosureV1CacheRouteTest.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/Integration/Routing/SerializableClosureV1CacheRouteTest.php b/tests/Integration/Routing/SerializableClosureV1CacheRouteTest.php index 96606b08708a..ba9c952fe457 100644 --- a/tests/Integration/Routing/SerializableClosureV1CacheRouteTest.php +++ b/tests/Integration/Routing/SerializableClosureV1CacheRouteTest.php @@ -7,9 +7,11 @@ use Orchestra\Testbench\Attributes\WithMigration; use Orchestra\Testbench\Factories\UserFactory; use Orchestra\Testbench\TestCase; +use PHPUnit\Framework\Attributes\RequiresOperatingSystemFamily; use function Illuminate\Filesystem\join_paths; +#[RequiresOperatingSystemFamily('Linux|Darwin')] #[WithConfig('app.key', 'AckfSECXIvnK5r28GVIWUAxmbBSjTsmF')] #[WithMigration] class SerializableClosureV1CacheRouteTest extends TestCase From 08f644d68a5e18b903fd39b69338a67140c1f62e Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Mon, 18 Nov 2024 19:34:53 +0800 Subject: [PATCH 08/21] wip Signed-off-by: Mior Muhammad Zaki --- .../Queue/Fixtures/Jobs/DeleteUser.php | 1 + .../Queue/SerializableClosureV1QueueTest.php | 16 ++++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/tests/Integration/Queue/Fixtures/Jobs/DeleteUser.php b/tests/Integration/Queue/Fixtures/Jobs/DeleteUser.php index f3d6ec666823..ecac9838e335 100644 --- a/tests/Integration/Queue/Fixtures/Jobs/DeleteUser.php +++ b/tests/Integration/Queue/Fixtures/Jobs/DeleteUser.php @@ -16,6 +16,7 @@ class DeleteUser implements ShouldQueue public function __construct( public User $user ) { + log($user); } /** diff --git a/tests/Integration/Queue/SerializableClosureV1QueueTest.php b/tests/Integration/Queue/SerializableClosureV1QueueTest.php index 5cf3c4bb095d..32fe0cf158a6 100644 --- a/tests/Integration/Queue/SerializableClosureV1QueueTest.php +++ b/tests/Integration/Queue/SerializableClosureV1QueueTest.php @@ -11,6 +11,7 @@ use Orchestra\Testbench\TestCase; #[WithConfig('app.key', 'AckfSECXIvnK5r28GVIWUAxmbBSjTsmF')] +#[WithConfig('queue.default', 'database')] #[WithMigration] class SerializableClosureV1QueueTest extends TestCase { @@ -28,7 +29,7 @@ protected function afterRefreshingDatabase() DB::table('jobs')->insert([ 'queue' => 'default', - 'payload' => '{"uuid":"d9701f94-9e3a-4a02-b3a4-215c35c7e54c","displayName":"Illuminate\\\Tests\\\Integration\\\Queue\\\Fixtures\\\Jobs\\\DeleteUser","job":"Illuminate\\\Queue\\\CallQueuedHandler@call","maxTries":null,"maxExceptions":null,"failOnTimeout":false,"backoff":null,"timeout":null,"retryUntil":null,"data":{"commandName":"Illuminate\\\Tests\\\Integration\\\Queue\\\Fixtures\\\Jobs\\\DeleteUser","command":"O:59:\"Illuminate\\\Tests\\\Integration\\\Queue\\\Fixtures\\\Jobs\\\DeleteUser\":1:{s:4:\"user\";O:45:\"Illuminate\\\Contracts\\\Database\\\ModelIdentifier\":5:{s:5:\"class\";s:31:\"Illuminate\\\Foundation\\\Auth\\\User\";s:2:\"id\";i:100;s:9:\"relations\";a:0:{}s:10:\"connection\";s:7:\"testing\";s:15:\"collectionClass\";N;}}"}}', + 'payload' => "{\"uuid\":\"d7c0856d-733a-4e73-89c8-eca4dea621ff\",\"displayName\":\"Illuminate\\\\Tests\\\\Integration\\\\Queue\\\\Fixtures\\\\Jobs\\\\DeleteUser\",\"job\":\"Illuminate\\\\Queue\\\\CallQueuedHandler@call\",\"maxTries\":null,\"maxExceptions\":null,\"failOnTimeout\":false,\"backoff\":null,\"timeout\":null,\"retryUntil\":null,\"data\":{\"commandName\":\"Illuminate\\\\Tests\\\\Integration\\\\Queue\\\\Fixtures\\\\Jobs\\\\DeleteUser\",\"command\":\"O:59:\\\"Illuminate\\\\Tests\\\\Integration\\\\Queue\\\\Fixtures\\\\Jobs\\\\DeleteUser\\\":3:{s:4:\\\"user\\\";O:45:\\\"Illuminate\\\\Contracts\\\\Database\\\\ModelIdentifier\\\":5:{s:5:\\\"class\\\";s:31:\\\"Illuminate\\\\Foundation\\\\Auth\\\\User\\\";s:2:\\\"id\\\";i:100;s:9:\\\"relations\\\";a:0:{}s:10:\\\"connection\\\";s:7:\\\"testing\\\";s:15:\\\"collectionClass\\\";N;}s:7:\\\"chained\\\";a:1:{i:0;s:571:\\\"O:34:\\\"Illuminate\\\\Queue\\\\CallQueuedClosure\\\":1:{s:7:\\\"closure\\\";O:47:\\\"Laravel\\\\SerializableClosure\\\\SerializableClosure\\\":1:{s:12:\\\"serializable\\\";O:46:\\\"Laravel\\\\SerializableClosure\\\\Serializers\\\\Signed\\\":2:{s:12:\\\"serializable\\\";s:282:\\\"O:46:\\\"Laravel\\\\SerializableClosure\\\\Serializers\\\\Native\\\":5:{s:3:\\\"use\\\";a:0:{}s:8:\\\"function\\\";s:57:\\\"function () {\\n \\\\info('Hello world');\\n }\\\";s:5:\\\"scope\\\";s:44:\\\"Illuminate\\\\Foundation\\\\Console\\\\ClosureCommand\\\";s:4:\\\"this\\\";N;s:4:\\\"self\\\";s:32:\\\"000000000000021e0000000000000000\\\";}\\\";s:4:\\\"hash\\\";s:44:\\\"VGMlRmFr2\\/U1E8lksExnzODwffyWR8oD01WOcQ2SUjE=\\\";}}}\\\";}s:19:\\\"chainCatchCallbacks\\\";a:1:{i:0;O:47:\\\"Laravel\\\\SerializableClosure\\\\SerializableClosure\\\":1:{s:12:\\\"serializable\\\";O:46:\\\"Laravel\\\\SerializableClosure\\\\Serializers\\\\Signed\\\":2:{s:12:\\\"serializable\\\";s:309:\\\"O:46:\\\"Laravel\\\\SerializableClosure\\\\Serializers\\\\Native\\\":5:{s:3:\\\"use\\\";a:0:{}s:8:\\\"function\\\";s:84:\\\"function (\\\\Throwable \$e) {\\n \\\\Illuminate\\\\Support\\\\Facades\\\\Log::error(\$e);\\n }\\\";s:5:\\\"scope\\\";s:44:\\\"Illuminate\\\\Foundation\\\\Console\\\\ClosureCommand\\\";s:4:\\\"this\\\";N;s:4:\\\"self\\\";s:32:\\\"00000000000002380000000000000000\\\";}\\\";s:4:\\\"hash\\\";s:44:\\\"RBSD4RFLgmKL9WJEGY66aeZtWDkX\\/aY1J+MJ8LQSYi4=\\\";}}}}\"}}", 'attempts' => 0, 'available_at' => 1731919764, 'created_at' => 1731919764, @@ -42,11 +43,14 @@ public function testItCanProcessQueueFromSerializableClosureV1() 'email' => 'taylor@laravel.com', ]); - $payload = json_decode(DB::table('jobs')->value('payload'), true); + $this->artisan('queue:work', [ + '--stop-when-empty' => true, + '--daemon' => true, + ])->assertExitCode(0); - $command = unserialize($payload['data']['command']); - - $this->assertInstanceOf(Fixtures\Jobs\DeleteUser::class, $command); - $this->assertInstanceOf(User::class, $command->user); + $this->assertDatabaseMissing('users', [ + 'name' => 'Taylor Otwell', + 'email' => 'taylor@laravel.com', + ]); } } From cc5e56eea4a229de0d4c23f1260abbb197fe7fb7 Mon Sep 17 00:00:00 2001 From: StyleCI Bot Date: Mon, 18 Nov 2024 11:35:08 +0000 Subject: [PATCH 09/21] Apply fixes from StyleCI --- tests/Integration/Queue/SerializableClosureV1QueueTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/Integration/Queue/SerializableClosureV1QueueTest.php b/tests/Integration/Queue/SerializableClosureV1QueueTest.php index 32fe0cf158a6..d36b1c879435 100644 --- a/tests/Integration/Queue/SerializableClosureV1QueueTest.php +++ b/tests/Integration/Queue/SerializableClosureV1QueueTest.php @@ -2,7 +2,6 @@ namespace Illuminate\Tests\Integration\Queue; -use Illuminate\Foundation\Auth\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\DB; use Orchestra\Testbench\Attributes\WithConfig; From 0a8cac800124d3c1d16994ab9a994486ac61ebc7 Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Mon, 18 Nov 2024 20:17:47 +0800 Subject: [PATCH 10/21] wip Signed-off-by: Mior Muhammad Zaki --- tests/Integration/Queue/SerializableClosureV1QueueTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Integration/Queue/SerializableClosureV1QueueTest.php b/tests/Integration/Queue/SerializableClosureV1QueueTest.php index d36b1c879435..8b0ab364fff7 100644 --- a/tests/Integration/Queue/SerializableClosureV1QueueTest.php +++ b/tests/Integration/Queue/SerializableClosureV1QueueTest.php @@ -43,7 +43,7 @@ public function testItCanProcessQueueFromSerializableClosureV1() ]); $this->artisan('queue:work', [ - '--stop-when-empty' => true, + '--once' => true, '--daemon' => true, ])->assertExitCode(0); From 0f7b106e160adffc6ebd337417533e94ed9d1270 Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Mon, 18 Nov 2024 20:21:30 +0800 Subject: [PATCH 11/21] wip Signed-off-by: Mior Muhammad Zaki --- tests/Integration/Queue/SerializableClosureV1QueueTest.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Integration/Queue/SerializableClosureV1QueueTest.php b/tests/Integration/Queue/SerializableClosureV1QueueTest.php index 8b0ab364fff7..8876383f7bcd 100644 --- a/tests/Integration/Queue/SerializableClosureV1QueueTest.php +++ b/tests/Integration/Queue/SerializableClosureV1QueueTest.php @@ -11,6 +11,7 @@ #[WithConfig('app.key', 'AckfSECXIvnK5r28GVIWUAxmbBSjTsmF')] #[WithConfig('queue.default', 'database')] +#[WithConfig('queue.connections.database.connection', 'testing')] #[WithMigration] class SerializableClosureV1QueueTest extends TestCase { From e39f526293b7b5acedd5e5a61e4733b609a7ac67 Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Mon, 18 Nov 2024 20:27:49 +0800 Subject: [PATCH 12/21] wip Signed-off-by: Mior Muhammad Zaki --- tests/Integration/Queue/SerializableClosureV1QueueTest.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Integration/Queue/SerializableClosureV1QueueTest.php b/tests/Integration/Queue/SerializableClosureV1QueueTest.php index 8876383f7bcd..b2569a3bdc6d 100644 --- a/tests/Integration/Queue/SerializableClosureV1QueueTest.php +++ b/tests/Integration/Queue/SerializableClosureV1QueueTest.php @@ -10,6 +10,7 @@ use Orchestra\Testbench\TestCase; #[WithConfig('app.key', 'AckfSECXIvnK5r28GVIWUAxmbBSjTsmF')] +#[WithConfig('database.default', 'testing')] #[WithConfig('queue.default', 'database')] #[WithConfig('queue.connections.database.connection', 'testing')] #[WithMigration] From 39267791449fd9a35e0fc5c33e3135880badd17d Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Mon, 18 Nov 2024 20:29:37 +0800 Subject: [PATCH 13/21] wip Signed-off-by: Mior Muhammad Zaki --- .../Queue/SerializableClosureV1QueueTest.php | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/tests/Integration/Queue/SerializableClosureV1QueueTest.php b/tests/Integration/Queue/SerializableClosureV1QueueTest.php index b2569a3bdc6d..0bcb6f899326 100644 --- a/tests/Integration/Queue/SerializableClosureV1QueueTest.php +++ b/tests/Integration/Queue/SerializableClosureV1QueueTest.php @@ -4,20 +4,27 @@ use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\DB; -use Orchestra\Testbench\Attributes\WithConfig; use Orchestra\Testbench\Attributes\WithMigration; use Orchestra\Testbench\Factories\UserFactory; use Orchestra\Testbench\TestCase; -#[WithConfig('app.key', 'AckfSECXIvnK5r28GVIWUAxmbBSjTsmF')] -#[WithConfig('database.default', 'testing')] -#[WithConfig('queue.default', 'database')] -#[WithConfig('queue.connections.database.connection', 'testing')] #[WithMigration] class SerializableClosureV1QueueTest extends TestCase { use RefreshDatabase; + protected function defineEnvironment($app) + { + tap($app->make('config'), function ($config) { + $config->set([ + 'app.key' => 'AckfSECXIvnK5r28GVIWUAxmbBSjTsmF', + 'database.default' => 'testing', + 'queue.default' => 'database', + 'queue.connections.database.connection' => 'testing', + ]); + }); + } + /** {@inheritDoc} */ protected function afterRefreshingDatabase() { From 1e1d2d57695f7fd4fa8a26eb630b71415935d489 Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Mon, 18 Nov 2024 21:08:23 +0800 Subject: [PATCH 14/21] wip Signed-off-by: Mior Muhammad Zaki --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index a5a01d2da42b..b1b11d95e93e 100644 --- a/composer.json +++ b/composer.json @@ -107,7 +107,7 @@ "league/flysystem-sftp-v3": "^3.0", "mockery/mockery": "^1.6", "nyholm/psr7": "^1.2", - "orchestra/testbench-core": "9.x-dev", + "orchestra/testbench-core": "^9.6", "pda/pheanstalk": "^5.0", "phpstan/phpstan": "^1.11.5", "phpunit/phpunit": "^10.5|^11.0", From ba801445c69f78e9c55d3e65b0301e22ab1fc1d7 Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Mon, 18 Nov 2024 21:33:13 +0800 Subject: [PATCH 15/21] wip Signed-off-by: Mior Muhammad Zaki --- .../Queue/SerializableClosureV1QueueTest.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tests/Integration/Queue/SerializableClosureV1QueueTest.php b/tests/Integration/Queue/SerializableClosureV1QueueTest.php index 0bcb6f899326..8a4e81c07589 100644 --- a/tests/Integration/Queue/SerializableClosureV1QueueTest.php +++ b/tests/Integration/Queue/SerializableClosureV1QueueTest.php @@ -2,7 +2,7 @@ namespace Illuminate\Tests\Integration\Queue; -use Illuminate\Foundation\Testing\RefreshDatabase; +use Illuminate\Foundation\Testing\DatabaseMigrations; use Illuminate\Support\Facades\DB; use Orchestra\Testbench\Attributes\WithMigration; use Orchestra\Testbench\Factories\UserFactory; @@ -11,8 +11,10 @@ #[WithMigration] class SerializableClosureV1QueueTest extends TestCase { - use RefreshDatabase; + use DatabaseMigrations; + /** {@inheritDoc} */ + #[\Override] protected function defineEnvironment($app) { tap($app->make('config'), function ($config) { @@ -52,8 +54,9 @@ public function testItCanProcessQueueFromSerializableClosureV1() ]); $this->artisan('queue:work', [ - '--once' => true, - '--daemon' => true, + 'connection' => 'database', + '--stop-when-empty' => true, + '--memory' => 1024, ])->assertExitCode(0); $this->assertDatabaseMissing('users', [ From 5319978e3af536effc8304a9f4fc9066df961573 Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Mon, 18 Nov 2024 21:49:35 +0800 Subject: [PATCH 16/21] wip Signed-off-by: Mior Muhammad Zaki --- .../Queue/SerializableClosureV1QueueTest.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tests/Integration/Queue/SerializableClosureV1QueueTest.php b/tests/Integration/Queue/SerializableClosureV1QueueTest.php index 8a4e81c07589..009b5756d3de 100644 --- a/tests/Integration/Queue/SerializableClosureV1QueueTest.php +++ b/tests/Integration/Queue/SerializableClosureV1QueueTest.php @@ -2,8 +2,9 @@ namespace Illuminate\Tests\Integration\Queue; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\DB; +use Orchestra\Testbench\Attributes\RequiresDatabase; use Orchestra\Testbench\Attributes\WithMigration; use Orchestra\Testbench\Factories\UserFactory; use Orchestra\Testbench\TestCase; @@ -11,18 +12,20 @@ #[WithMigration] class SerializableClosureV1QueueTest extends TestCase { - use DatabaseMigrations; + use RefreshDatabase; /** {@inheritDoc} */ #[\Override] protected function defineEnvironment($app) { + $this->markTestSkippedWhen($this->usingInMemoryDatabase(), 'Test does not support using :memory: database connection'); + tap($app->make('config'), function ($config) { $config->set([ 'app.key' => 'AckfSECXIvnK5r28GVIWUAxmbBSjTsmF', - 'database.default' => 'testing', + 'database.default' => 'sqlite', 'queue.default' => 'database', - 'queue.connections.database.connection' => 'testing', + 'queue.connections.database.connection' => 'sqlite', ]); }); } @@ -39,7 +42,7 @@ protected function afterRefreshingDatabase() DB::table('jobs')->insert([ 'queue' => 'default', - 'payload' => "{\"uuid\":\"d7c0856d-733a-4e73-89c8-eca4dea621ff\",\"displayName\":\"Illuminate\\\\Tests\\\\Integration\\\\Queue\\\\Fixtures\\\\Jobs\\\\DeleteUser\",\"job\":\"Illuminate\\\\Queue\\\\CallQueuedHandler@call\",\"maxTries\":null,\"maxExceptions\":null,\"failOnTimeout\":false,\"backoff\":null,\"timeout\":null,\"retryUntil\":null,\"data\":{\"commandName\":\"Illuminate\\\\Tests\\\\Integration\\\\Queue\\\\Fixtures\\\\Jobs\\\\DeleteUser\",\"command\":\"O:59:\\\"Illuminate\\\\Tests\\\\Integration\\\\Queue\\\\Fixtures\\\\Jobs\\\\DeleteUser\\\":3:{s:4:\\\"user\\\";O:45:\\\"Illuminate\\\\Contracts\\\\Database\\\\ModelIdentifier\\\":5:{s:5:\\\"class\\\";s:31:\\\"Illuminate\\\\Foundation\\\\Auth\\\\User\\\";s:2:\\\"id\\\";i:100;s:9:\\\"relations\\\";a:0:{}s:10:\\\"connection\\\";s:7:\\\"testing\\\";s:15:\\\"collectionClass\\\";N;}s:7:\\\"chained\\\";a:1:{i:0;s:571:\\\"O:34:\\\"Illuminate\\\\Queue\\\\CallQueuedClosure\\\":1:{s:7:\\\"closure\\\";O:47:\\\"Laravel\\\\SerializableClosure\\\\SerializableClosure\\\":1:{s:12:\\\"serializable\\\";O:46:\\\"Laravel\\\\SerializableClosure\\\\Serializers\\\\Signed\\\":2:{s:12:\\\"serializable\\\";s:282:\\\"O:46:\\\"Laravel\\\\SerializableClosure\\\\Serializers\\\\Native\\\":5:{s:3:\\\"use\\\";a:0:{}s:8:\\\"function\\\";s:57:\\\"function () {\\n \\\\info('Hello world');\\n }\\\";s:5:\\\"scope\\\";s:44:\\\"Illuminate\\\\Foundation\\\\Console\\\\ClosureCommand\\\";s:4:\\\"this\\\";N;s:4:\\\"self\\\";s:32:\\\"000000000000021e0000000000000000\\\";}\\\";s:4:\\\"hash\\\";s:44:\\\"VGMlRmFr2\\/U1E8lksExnzODwffyWR8oD01WOcQ2SUjE=\\\";}}}\\\";}s:19:\\\"chainCatchCallbacks\\\";a:1:{i:0;O:47:\\\"Laravel\\\\SerializableClosure\\\\SerializableClosure\\\":1:{s:12:\\\"serializable\\\";O:46:\\\"Laravel\\\\SerializableClosure\\\\Serializers\\\\Signed\\\":2:{s:12:\\\"serializable\\\";s:309:\\\"O:46:\\\"Laravel\\\\SerializableClosure\\\\Serializers\\\\Native\\\":5:{s:3:\\\"use\\\";a:0:{}s:8:\\\"function\\\";s:84:\\\"function (\\\\Throwable \$e) {\\n \\\\Illuminate\\\\Support\\\\Facades\\\\Log::error(\$e);\\n }\\\";s:5:\\\"scope\\\";s:44:\\\"Illuminate\\\\Foundation\\\\Console\\\\ClosureCommand\\\";s:4:\\\"this\\\";N;s:4:\\\"self\\\";s:32:\\\"00000000000002380000000000000000\\\";}\\\";s:4:\\\"hash\\\";s:44:\\\"RBSD4RFLgmKL9WJEGY66aeZtWDkX\\/aY1J+MJ8LQSYi4=\\\";}}}}\"}}", + 'payload' => "{\"uuid\":\"d7c0856d-733a-4e73-89c8-eca4dea621ff\",\"displayName\":\"Illuminate\\\\Tests\\\\Integration\\\\Queue\\\\Fixtures\\\\Jobs\\\\DeleteUser\",\"job\":\"Illuminate\\\\Queue\\\\CallQueuedHandler@call\",\"maxTries\":null,\"maxExceptions\":null,\"failOnTimeout\":false,\"backoff\":null,\"timeout\":null,\"retryUntil\":null,\"data\":{\"commandName\":\"Illuminate\\\\Tests\\\\Integration\\\\Queue\\\\Fixtures\\\\Jobs\\\\DeleteUser\",\"command\":\"O:59:\\\"Illuminate\\\\Tests\\\\Integration\\\\Queue\\\\Fixtures\\\\Jobs\\\\DeleteUser\\\":3:{s:4:\\\"user\\\";O:45:\\\"Illuminate\\\\Contracts\\\\Database\\\\ModelIdentifier\\\":5:{s:5:\\\"class\\\";s:31:\\\"Illuminate\\\\Foundation\\\\Auth\\\\User\\\";s:2:\\\"id\\\";i:100;s:9:\\\"relations\\\";a:0:{}s:10:\\\"connection\\\";s:6:\\\"sqlite\\\";s:15:\\\"collectionClass\\\";N;}s:7:\\\"chained\\\";a:1:{i:0;s:571:\\\"O:34:\\\"Illuminate\\\\Queue\\\\CallQueuedClosure\\\":1:{s:7:\\\"closure\\\";O:47:\\\"Laravel\\\\SerializableClosure\\\\SerializableClosure\\\":1:{s:12:\\\"serializable\\\";O:46:\\\"Laravel\\\\SerializableClosure\\\\Serializers\\\\Signed\\\":2:{s:12:\\\"serializable\\\";s:282:\\\"O:46:\\\"Laravel\\\\SerializableClosure\\\\Serializers\\\\Native\\\":5:{s:3:\\\"use\\\";a:0:{}s:8:\\\"function\\\";s:57:\\\"function () {\\n \\\\info('Hello world');\\n }\\\";s:5:\\\"scope\\\";s:44:\\\"Illuminate\\\\Foundation\\\\Console\\\\ClosureCommand\\\";s:4:\\\"this\\\";N;s:4:\\\"self\\\";s:32:\\\"000000000000021e0000000000000000\\\";}\\\";s:4:\\\"hash\\\";s:44:\\\"VGMlRmFr2\\/U1E8lksExnzODwffyWR8oD01WOcQ2SUjE=\\\";}}}\\\";}s:19:\\\"chainCatchCallbacks\\\";a:1:{i:0;O:47:\\\"Laravel\\\\SerializableClosure\\\\SerializableClosure\\\":1:{s:12:\\\"serializable\\\";O:46:\\\"Laravel\\\\SerializableClosure\\\\Serializers\\\\Signed\\\":2:{s:12:\\\"serializable\\\";s:309:\\\"O:46:\\\"Laravel\\\\SerializableClosure\\\\Serializers\\\\Native\\\":5:{s:3:\\\"use\\\";a:0:{}s:8:\\\"function\\\";s:84:\\\"function (\\\\Throwable \$e) {\\n \\\\Illuminate\\\\Support\\\\Facades\\\\Log::error(\$e);\\n }\\\";s:5:\\\"scope\\\";s:44:\\\"Illuminate\\\\Foundation\\\\Console\\\\ClosureCommand\\\";s:4:\\\"this\\\";N;s:4:\\\"self\\\";s:32:\\\"00000000000002380000000000000000\\\";}\\\";s:4:\\\"hash\\\";s:44:\\\"RBSD4RFLgmKL9WJEGY66aeZtWDkX\\/aY1J+MJ8LQSYi4=\\\";}}}}\"}}", 'attempts' => 0, 'available_at' => 1731919764, 'created_at' => 1731919764, From 43f218bcd422dc5747fc509c1e7758bd97a7f71e Mon Sep 17 00:00:00 2001 From: StyleCI Bot Date: Mon, 18 Nov 2024 13:50:11 +0000 Subject: [PATCH 17/21] Apply fixes from StyleCI --- tests/Integration/Queue/SerializableClosureV1QueueTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/Integration/Queue/SerializableClosureV1QueueTest.php b/tests/Integration/Queue/SerializableClosureV1QueueTest.php index 009b5756d3de..47d4dd545008 100644 --- a/tests/Integration/Queue/SerializableClosureV1QueueTest.php +++ b/tests/Integration/Queue/SerializableClosureV1QueueTest.php @@ -4,7 +4,6 @@ use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\DB; -use Orchestra\Testbench\Attributes\RequiresDatabase; use Orchestra\Testbench\Attributes\WithMigration; use Orchestra\Testbench\Factories\UserFactory; use Orchestra\Testbench\TestCase; From fda9eea23d0ebf5cbe657139745fe4d11b8fc7d7 Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Tue, 19 Nov 2024 08:27:07 +0800 Subject: [PATCH 18/21] Update SerializableClosureV1QueueTest.php --- tests/Integration/Queue/SerializableClosureV1QueueTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/Integration/Queue/SerializableClosureV1QueueTest.php b/tests/Integration/Queue/SerializableClosureV1QueueTest.php index 47d4dd545008..3d94359a67fb 100644 --- a/tests/Integration/Queue/SerializableClosureV1QueueTest.php +++ b/tests/Integration/Queue/SerializableClosureV1QueueTest.php @@ -22,9 +22,9 @@ protected function defineEnvironment($app) tap($app->make('config'), function ($config) { $config->set([ 'app.key' => 'AckfSECXIvnK5r28GVIWUAxmbBSjTsmF', - 'database.default' => 'sqlite', + // 'database.default' => 'sqlite', 'queue.default' => 'database', - 'queue.connections.database.connection' => 'sqlite', + // 'queue.connections.database.connection' => 'sqlite', ]); }); } From 4c09f626e9e3d13359c11d65b3f98d4e9838293e Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Tue, 19 Nov 2024 09:37:19 +0800 Subject: [PATCH 19/21] wip Signed-off-by: Mior Muhammad Zaki --- tests/Integration/Queue/SerializableClosureV1QueueTest.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/Integration/Queue/SerializableClosureV1QueueTest.php b/tests/Integration/Queue/SerializableClosureV1QueueTest.php index 3d94359a67fb..8f72ae239060 100644 --- a/tests/Integration/Queue/SerializableClosureV1QueueTest.php +++ b/tests/Integration/Queue/SerializableClosureV1QueueTest.php @@ -22,9 +22,7 @@ protected function defineEnvironment($app) tap($app->make('config'), function ($config) { $config->set([ 'app.key' => 'AckfSECXIvnK5r28GVIWUAxmbBSjTsmF', - // 'database.default' => 'sqlite', 'queue.default' => 'database', - // 'queue.connections.database.connection' => 'sqlite', ]); }); } From 3ca0a75a9de825bb4b90821ec3a02543871d411b Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Tue, 19 Nov 2024 11:33:21 +0800 Subject: [PATCH 20/21] Apply suggestions from code review --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 4ce1d35eef94..0b73cbf466e0 100644 --- a/composer.json +++ b/composer.json @@ -32,7 +32,7 @@ "guzzlehttp/guzzle": "^7.8", "guzzlehttp/uri-template": "^1.0", "laravel/prompts": "^0.1.18|^0.2.0|^0.3.0", - "laravel/serializable-closure": "^2.0@dev", + "laravel/serializable-closure": "^1.3|^2.0", "league/commonmark": "^2.2.1", "league/flysystem": "^3.8.0", "monolog/monolog": "^3.0", From e38a7b809fd7a669d5f178f4309cb2807edd101e Mon Sep 17 00:00:00 2001 From: Mior Muhammad Zaki Date: Tue, 19 Nov 2024 11:56:49 +0800 Subject: [PATCH 21/21] wip Signed-off-by: Mior Muhammad Zaki --- src/Illuminate/Queue/composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Illuminate/Queue/composer.json b/src/Illuminate/Queue/composer.json index 54fddacecb46..95819f4edfeb 100644 --- a/src/Illuminate/Queue/composer.json +++ b/src/Illuminate/Queue/composer.json @@ -23,7 +23,7 @@ "illuminate/filesystem": "^11.0", "illuminate/pipeline": "^11.0", "illuminate/support": "^11.0", - "laravel/serializable-closure": "^1.2.2", + "laravel/serializable-closure": "^1.3|^2.0", "ramsey/uuid": "^4.7", "symfony/process": "^7.0" },