From 39a60f1e71e16584abb1c4931ddd4c18abb4d9bb Mon Sep 17 00:00:00 2001 From: Stephen Damian - Blockchain Developer - Rust / Solidity / Web3 / PHP / TypeScript Date: Mon, 30 Sep 2024 16:29:28 +0200 Subject: [PATCH] [11.x] Fixes function loading conflicts when using `@include('vendor/autoload.php')` via Laravel Envoy (#52974) * Fix conflicts with ading function_exists in Support functions * Fix with php_binary * Fix with namespace --------- Co-authored-by: s-damian --- src/Illuminate/Support/functions.php | 54 +++++++++++++++------------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/src/Illuminate/Support/functions.php b/src/Illuminate/Support/functions.php index 2472dfafff9a..3fc76f87151e 100644 --- a/src/Illuminate/Support/functions.php +++ b/src/Illuminate/Support/functions.php @@ -6,32 +6,36 @@ use Illuminate\Support\Defer\DeferredCallbackCollection; use Illuminate\Support\Process\PhpExecutableFinder; -/** - * Defer execution of the given callback. - * - * @param callable|null $callback - * @param string|null $name - * @param bool $always - * @return \Illuminate\Support\Defer\DeferredCallback - */ -function defer(?callable $callback = null, ?string $name = null, bool $always = false) -{ - if ($callback === null) { - return app(DeferredCallbackCollection::class); - } +if (! function_exists('Illuminate\Support\defer')) { + /** + * Defer execution of the given callback. + * + * @param callable|null $callback + * @param string|null $name + * @param bool $always + * @return \Illuminate\Support\Defer\DeferredCallback + */ + function defer(?callable $callback = null, ?string $name = null, bool $always = false) + { + if ($callback === null) { + return app(DeferredCallbackCollection::class); + } - return tap( - new DeferredCallback($callback, $name, $always), - fn ($deferred) => app(DeferredCallbackCollection::class)[] = $deferred - ); + return tap( + new DeferredCallback($callback, $name, $always), + fn ($deferred) => app(DeferredCallbackCollection::class)[] = $deferred + ); + } } -/** - * Determine the PHP Binary. - * - * @return string - */ -function php_binary() -{ - return (new PhpExecutableFinder)->find(false) ?: 'php'; +if (! function_exists('Illuminate\Support\php_binary')) { + /** + * Determine the PHP Binary. + * + * @return string + */ + function php_binary() + { + return (new PhpExecutableFinder)->find(false) ?: 'php'; + } }