[Back] <?php
namespace Illuminate\Support;
use Carbon\CarbonInterface;
use Carbon\CarbonInterval;
use Illuminate\Support\Defer\DeferredCallback;
use Illuminate\Support\Defer\DeferredCallbackCollection;
use Illuminate\Support\Facades\Date;
use Symfony\Component\Process\PhpExecutableFinder;
if (! function_exists('Illuminate\Support\defer')) {
/**
* Defer execution of the given callback.
*
* @param callable|null $callback
* @param string|null $name
* @param bool $always
* @return ($callback is null ? \Illuminate\Support\Defer\DeferredCallbackCollection : \Illuminate\Support\Defer\DeferredCallback)
*/
function defer(?callable $callback = null, ?string $name = null, bool $always = false): DeferredCallback|DeferredCallbackCollection
{
if ($callback === null) {
return app(DeferredCallbackCollection::class);
}
return tap(
new DeferredCallback($callback, $name, $always),
fn ($deferred) => app(DeferredCallbackCollection::class)[] = $deferred
);
}
}
if (! function_exists('Illuminate\Support\php_binary')) {
/**
* Determine the PHP Binary.
*/
function php_binary(): string
{
return (new PhpExecutableFinder)->find(false) ?: 'php';
}
}
if (! function_exists('Illuminate\Support\artisan_binary')) {
/**
* Determine the proper Artisan executable.
*/
function artisan_binary(): string
{
return defined('ARTISAN_BINARY') ? ARTISAN_BINARY : 'artisan';
}
}
// Time functions...
if (! function_exists('Illuminate\Support\now')) {
/**
* Create a new Carbon instance for the current time.
*
* @param \DateTimeZone|\UnitEnum|string|null $tz
* @return \Illuminate\Support\Carbon
*/
function now($tz = null): CarbonInterface
{
return Date::now(enum_value($tz));
}
}
if (! function_exists('Illuminate\Support\microseconds')) {
/**
* Get the current date / time plus the given number of microseconds.
*/
function microseconds(int|float $microseconds): CarbonInterval
{
return CarbonInterval::microseconds($microseconds);
}
}
if (! function_exists('Illuminate\Support\milliseconds')) {
/**
* Get the current date / time plus the given number of milliseconds.
*/
function milliseconds(int|float $milliseconds): CarbonInterval
{
return CarbonInterval::milliseconds($milliseconds);
}
}
if (! function_exists('Illuminate\Support\seconds')) {
/**
* Get the current date / time plus the given number of seconds.
*/
function seconds(int|float $seconds): CarbonInterval
{
return CarbonInterval::seconds($seconds);
}
}
if (! function_exists('Illuminate\Support\minutes')) {
/**
* Get the current date / time plus the given number of minutes.
*/
function minutes(int|float $minutes): CarbonInterval
{
return CarbonInterval::minutes($minutes);
}
}
if (! function_exists('Illuminate\Support\hours')) {
/**
* Get the current date / time plus the given number of hours.
*/
function hours(int|float $hours): CarbonInterval
{
return CarbonInterval::hours($hours);
}
}
if (! function_exists('Illuminate\Support\days')) {
/**
* Get the current date / time plus the given number of days.
*/
function days(int|float $days): CarbonInterval
{
return CarbonInterval::days($days);
}
}
if (! function_exists('Illuminate\Support\weeks')) {
/**
* Get the current date / time plus the given number of weeks.
*/
function weeks(int $weeks): CarbonInterval
{
return CarbonInterval::weeks($weeks);
}
}
if (! function_exists('Illuminate\Support\months')) {
/**
* Get the current date / time plus the given number of months.
*/
function months(int $months): CarbonInterval
{
return CarbonInterval::months($months);
}
}
if (! function_exists('Illuminate\Support\years')) {
/**
* Get the current date / time plus the given number of years.
*/
function years(int $years): CarbonInterval
{
return CarbonInterval::years($years);
}
}