Skip to content

Commit 18c22d1

Browse files
[11.x] Move Defer classes to Support component and add Illuminate\Support\defer function (#52801)
* [11.x] Move Defer classes to Concurrency component Also avoid using global `defer()` function when it can be defined in environment such as Swoole Signed-off-by: Mior Muhammad Zaki <[email protected]> * wip Signed-off-by: Mior Muhammad Zaki <[email protected]> * wip Signed-off-by: Mior Muhammad Zaki <[email protected]> * Update DeferredCallbackCollection.php * wip Signed-off-by: Mior Muhammad Zaki <[email protected]> * wip Signed-off-by: Mior Muhammad Zaki <[email protected]> * wip Signed-off-by: Mior Muhammad Zaki <[email protected]> --------- Signed-off-by: Mior Muhammad Zaki <[email protected]> Co-authored-by: Taylor Otwell <[email protected]>
1 parent d582690 commit 18c22d1

File tree

13 files changed

+42
-25
lines changed

13 files changed

+42
-25
lines changed

src/Illuminate/Cache/Repository.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
use Illuminate\Support\InteractsWithTime;
2525
use Illuminate\Support\Traits\Macroable;
2626

27+
use function Illuminate\Support\defer;
28+
2729
/**
2830
* @mixin \Illuminate\Contracts\Cache\Store
2931
*/
@@ -517,11 +519,7 @@ public function flexible($key, $ttl, $callback, $lock = null)
517519
});
518520
};
519521

520-
if (function_exists('defer')) {
521-
defer($refresh, "illuminate:cache:refresh:{$key}");
522-
} else {
523-
$refresh();
524-
}
522+
defer($refresh, "illuminate:cache:refresh:{$key}");
525523

526524
return $value;
527525
}

src/Illuminate/Concurrency/ForkDriver.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44

55
use Closure;
66
use Illuminate\Contracts\Concurrency\Driver;
7-
use Illuminate\Foundation\Defer\DeferredCallback;
87
use Illuminate\Support\Arr;
8+
use Illuminate\Support\Defer\DeferredCallback;
99
use Spatie\Fork\Fork;
1010

11+
use function Illuminate\Support\defer;
12+
1113
class ForkDriver implements Driver
1214
{
1315
/**

src/Illuminate/Concurrency/ProcessDriver.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55
use Closure;
66
use Illuminate\Console\Application;
77
use Illuminate\Contracts\Concurrency\Driver;
8-
use Illuminate\Foundation\Defer\DeferredCallback;
98
use Illuminate\Process\Factory as ProcessFactory;
109
use Illuminate\Process\Pool;
1110
use Illuminate\Support\Arr;
11+
use Illuminate\Support\Defer\DeferredCallback;
1212
use Laravel\SerializableClosure\SerializableClosure;
1313

14+
use function Illuminate\Support\defer;
15+
1416
class ProcessDriver implements Driver
1517
{
1618
/**

src/Illuminate/Concurrency/SyncDriver.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44

55
use Closure;
66
use Illuminate\Contracts\Concurrency\Driver;
7-
use Illuminate\Foundation\Defer\DeferredCallback;
87
use Illuminate\Support\Arr;
8+
use Illuminate\Support\Defer\DeferredCallback;
9+
10+
use function Illuminate\Support\defer;
911

1012
class SyncDriver implements Driver
1113
{

src/Illuminate/Concurrency/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
},
2121
"autoload": {
2222
"psr-4": {
23-
"Illuminate\\Support\\": ""
23+
"Illuminate\\Concurrency\\": ""
2424
}
2525
},
2626
"extra": {

src/Illuminate/Contracts/Concurrency/Driver.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace Illuminate\Contracts\Concurrency;
44

55
use Closure;
6-
use Illuminate\Foundation\Defer\DeferredCallback;
6+
use Illuminate\Support\Defer\DeferredCallback;
77

88
interface Driver
99
{

src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
use Closure;
66
use Illuminate\Container\Container;
7-
use Illuminate\Foundation\Defer\DeferredCallbackCollection;
87
use Illuminate\Http\Request;
8+
use Illuminate\Support\Defer\DeferredCallbackCollection;
99
use Symfony\Component\HttpFoundation\Response;
1010

1111
class InvokeDeferredCallbacks

src/Illuminate/Foundation/Providers/FoundationServiceProvider.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
use Illuminate\Database\ConnectionInterface;
1414
use Illuminate\Database\Grammar;
1515
use Illuminate\Foundation\Console\CliDumper;
16-
use Illuminate\Foundation\Defer\DeferredCallbackCollection;
1716
use Illuminate\Foundation\Exceptions\Renderer\Listener;
1817
use Illuminate\Foundation\Exceptions\Renderer\Mappers\BladeMapper;
1918
use Illuminate\Foundation\Exceptions\Renderer\Renderer;
@@ -26,6 +25,7 @@
2625
use Illuminate\Log\Events\MessageLogged;
2726
use Illuminate\Queue\Events\JobAttempted;
2827
use Illuminate\Support\AggregateServiceProvider;
28+
use Illuminate\Support\Defer\DeferredCallbackCollection;
2929
use Illuminate\Support\Facades\URL;
3030
use Illuminate\Testing\LoggedExceptionCollection;
3131
use Illuminate\Testing\ParallelTestingServiceProvider;

src/Illuminate/Foundation/helpers.php

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414
use Illuminate\Contracts\View\Factory as ViewFactory;
1515
use Illuminate\Foundation\Bus\PendingClosureDispatch;
1616
use Illuminate\Foundation\Bus\PendingDispatch;
17-
use Illuminate\Foundation\Defer\DeferredCallback;
18-
use Illuminate\Foundation\Defer\DeferredCallbackCollection;
1917
use Illuminate\Foundation\Mix;
2018
use Illuminate\Http\Exceptions\HttpResponseException;
2119
use Illuminate\Log\Context\Repository as ContextRepository;
@@ -412,14 +410,7 @@ function decrypt($value, $unserialize = true)
412410
*/
413411
function defer(?callable $callback = null, ?string $name = null, bool $always = false)
414412
{
415-
if ($callback === null) {
416-
return app(DeferredCallbackCollection::class);
417-
}
418-
419-
return tap(
420-
new DeferredCallback($callback, $name, $always),
421-
fn ($deferred) => app(DeferredCallbackCollection::class)[] = $deferred
422-
);
413+
return \Illuminate\Support\defer($callback, $name, $always);
423414
}
424415
}
425416

src/Illuminate/Foundation/Defer/DeferredCallback.php renamed to src/Illuminate/Support/Defer/DeferredCallback.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Illuminate\Foundation\Defer;
3+
namespace Illuminate\Support\Defer;
44

55
use Illuminate\Support\Str;
66

0 commit comments

Comments
 (0)