class Event (View source)

Traits

Properties

static protected array $macros

The registered string macros.

from  Macroable
string $command

The command string.

string $expression

The cron expression representing the event's frequency.

DateTimeZone|string $timezone

The timezone the date should be evaluated on.

string $user

The user the command should run as.

array $environments

The list of environments the command should run under.

bool $evenInMaintenanceMode

Indicates if the command should run in maintenance mode.

bool $withoutOverlapping

Indicates if the command should not overlap itself.

bool $onOneServer

Indicates if the command should only be allowed to run on one server for each cron expression.

int $expiresAt

The amount of time the mutex should be valid.

bool $runInBackground

Indicates if the command should run in background.

protected array $filters

The array of filter callbacks.

protected array $rejects

The array of reject callbacks.

string $output

The location that output should be sent to.

bool $shouldAppendOutput

Indicates whether output should be appended.

protected array $beforeCallbacks

The array of callbacks to be run before the event is started.

protected array $afterCallbacks

The array of callbacks to be run after the event is finished.

string $description

The human readable description of the event.

EventMutex $mutex

The event mutex implementation.

int|null $exitCode

The exit status code of the command.

Methods

static void
macro(string $name, object|callable $macro)

Register a custom macro.

static void
mixin(object $mixin, bool $replace = true)

Mix another object into the class.

static bool
hasMacro(string $name)

Checks if macro is registered.

static mixed
__callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

mixed
__call(string $method, array $parameters)

Dynamically handle calls to the class.

$this
cron(string $expression)

The Cron expression representing the event's frequency.

$this
between(string $startTime, string $endTime)

Schedule the event to run between start and end time.

$this
unlessBetween(string $startTime, string $endTime)

Schedule the event to not run between start and end time.

$this
everyMinute()

Schedule the event to run every minute.

$this
everyTwoMinutes()

Schedule the event to run every two minutes.

$this
everyThreeMinutes()

Schedule the event to run every three minutes.

$this
everyFourMinutes()

Schedule the event to run every four minutes.

$this
everyFiveMinutes()

Schedule the event to run every five minutes.

$this
everyTenMinutes()

Schedule the event to run every ten minutes.

$this
everyFifteenMinutes()

Schedule the event to run every fifteen minutes.

$this
everyThirtyMinutes()

Schedule the event to run every thirty minutes.

$this
hourly()

Schedule the event to run hourly.

$this
hourlyAt(array|int $offset)

Schedule the event to run hourly at a given offset in the hour.

$this
everyTwoHours()

Schedule the event to run every two hours.

$this
everyThreeHours()

Schedule the event to run every three hours.

$this
everyFourHours()

Schedule the event to run every four hours.

$this
everySixHours()

Schedule the event to run every six hours.

$this
daily()

Schedule the event to run daily.

$this
at(string $time)

Schedule the command at a given time.

$this
dailyAt(string $time)

Schedule the event to run daily at a given time (10:00, 19:30, etc).

$this
twiceDaily(int $first = 1, int $second = 13)

Schedule the event to run twice daily.

$this
weekdays()

Schedule the event to run only on weekdays.

$this
weekends()

Schedule the event to run only on weekends.

$this
mondays()

Schedule the event to run only on Mondays.

$this
tuesdays()

Schedule the event to run only on Tuesdays.

$this
wednesdays()

Schedule the event to run only on Wednesdays.

$this
thursdays()

Schedule the event to run only on Thursdays.

$this
fridays()

Schedule the event to run only on Fridays.

$this
saturdays()

Schedule the event to run only on Saturdays.

$this
sundays()

Schedule the event to run only on Sundays.

$this
weekly()

Schedule the event to run weekly.

$this
weeklyOn(int $day, string $time = '0:0')

Schedule the event to run weekly on a given day and time.

$this
monthly()

Schedule the event to run monthly.

$this
monthlyOn(int $day = 1, string $time = '0:0')

Schedule the event to run monthly on a given day and time.

$this
twiceMonthly(int $first = 1, int $second = 16, string $time = '0:0')

Schedule the event to run twice monthly at a given time.

$this
lastDayOfMonth(string $time = '0:0')

Schedule the event to run on the last day of the month.

$this
quarterly()

Schedule the event to run quarterly.

$this
yearly()

Schedule the event to run yearly.

$this
days(array|mixed $days)

Set the days of the week the command should run on.

$this
timezone(DateTimeZone|string $timezone)

Set the timezone the date should be evaluated on.

$this
spliceIntoPosition(int $position, string $value)

Splice the given value into the given position of the expression.

array
closureParameterTypes(Closure $closure)

Get the class names / types of the parameters of the given Closure.

string
firstClosureParameterType(Closure $closure)

Get the class name of the first parameter of the given Closure.

void
__construct(EventMutex $mutex, string $command, DateTimeZone|string|null $timezone = null)

Create a new event instance.

string
getDefaultOutput()

Get the default output depending on the OS.

void
run(Container $container)

Run the given event.

string
mutexName()

Get the mutex name for the scheduled command.

void
runCommandInForeground(Container $container)

Run the command in the foreground.

void
runCommandInBackground(Container $container)

Run the command in the background.

void
callBeforeCallbacks(Container $container)

Call all of the "before" callbacks for the event.

void
callAfterCallbacks(Container $container)

Call all of the "after" callbacks for the event.

void
callAfterCallbacksWithExitCode(Container $container, int $exitCode)

Call all of the "after" callbacks for the event.

string
buildCommand()

Build the command string.

bool
isDue(Application $app)

Determine if the given event should run based on the Cron expression.

bool
runsInMaintenanceMode()

Determine if the event runs in maintenance mode.

bool
expressionPasses()

Determine if the Cron expression passes.

bool
runsInEnvironment(string $environment)

Determine if the event runs in the given environment.

bool
filtersPass(Application $app)

Determine if the filters pass for the event.

$this
storeOutput()

Ensure that the output is stored on disk in a log file.

$this
sendOutputTo(string $location, bool $append = false)

Send the output of the command to a given location.

$this
appendOutputTo(string $location)

Append the output of the command to a given location.

$this
emailOutputTo(array|mixed $addresses, bool $onlyIfOutputExists = false)

E-mail the results of the scheduled operation.

$this
emailWrittenOutputTo(array|mixed $addresses)

E-mail the results of the scheduled operation if it produces output.

$this
emailOutputOnFailure(array|mixed $addresses)

E-mail the results of the scheduled operation if it fails.

void
ensureOutputIsBeingCaptured()

Ensure that the command output is being captured.

void
emailOutput(Mailer $mailer, array $addresses, bool $onlyIfOutputExists = false)

E-mail the output of the event to the recipients.

string
getEmailSubject()

Get the e-mail subject line for output results.

$this
pingBefore(string $url)

Register a callback to ping a given URL before the job runs.

$this
pingBeforeIf(bool $value, string $url)

Register a callback to ping a given URL before the job runs if the given condition is true.

$this
thenPing(string $url)

Register a callback to ping a given URL after the job runs.

$this
thenPingIf(bool $value, string $url)

Register a callback to ping a given URL after the job runs if the given condition is true.

$this
pingOnSuccess(string $url)

Register a callback to ping a given URL if the operation succeeds.

$this
pingOnFailure(string $url)

Register a callback to ping a given URL if the operation fails.

pingCallback(string $url)

Get the callback that pings the given URL.

$this
runInBackground()

State that the command should run in background.

$this
user(string $user)

Set which user the command should run as.

$this
environments(array|mixed $environments)

Limit the environments the command should run in.

$this
evenInMaintenanceMode()

State that the command should run even in maintenance mode.

$this
withoutOverlapping(int $expiresAt = 1440)

Do not allow the event to overlap each other.

$this
onOneServer()

Allow the event to only run on one server for each cron expression.

$this
when(Closure|bool $callback)

Register a callback to further filter the schedule.

$this
skip(Closure|bool $callback)

Register a callback to further filter the schedule.

$this
before(Closure $callback)

Register a callback to be called before the operation.

$this
after(Closure $callback)

Register a callback to be called after the operation.

$this
then(Closure $callback)

Register a callback to be called after the operation.

$this
thenWithOutput(Closure $callback, bool $onlyIfOutputExists = false)

Register a callback that uses the output after the job runs.

$this
onSuccess(Closure $callback)

Register a callback to be called if the operation succeeds.

$this
onSuccessWithOutput(Closure $callback, bool $onlyIfOutputExists = false)

Register a callback that uses the output if the operation succeeds.

$this
onFailure(Closure $callback)

Register a callback to be called if the operation fails.

$this
onFailureWithOutput(Closure $callback, bool $onlyIfOutputExists = false)

Register a callback that uses the output if the operation fails.

withOutputCallback(Closure $callback, bool $onlyIfOutputExists = false)

Get a callback that provides output.

$this
name(string $description)

Set the human-friendly description of the event.

$this
description(string $description)

Set the human-friendly description of the event.

string
getSummaryForDisplay()

Get the summary of the event for display.

nextRunDate(DateTimeInterface|string $currentTime = 'now', int $nth = 0, bool $allowCurrentDate = false)

Determine the next due date for an event.

string
getExpression()

Get the Cron expression for the event.

$this
preventOverlapsUsing(EventMutex $mutex)

Set the event mutex implementation to be used.

Details

static void macro(string $name, object|callable $macro)

Register a custom macro.

Parameters

string $name
object|callable $macro

Return Value

void

static void mixin(object $mixin, bool $replace = true)

Mix another object into the class.

Parameters

object $mixin
bool $replace

Return Value

void

Exceptions

ReflectionException

static bool hasMacro(string $name)

Checks if macro is registered.

Parameters

string $name

Return Value

bool

static mixed __callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

mixed __call(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

$this cron(string $expression)

The Cron expression representing the event's frequency.

Parameters

string $expression

Return Value

$this

$this between(string $startTime, string $endTime)

Schedule the event to run between start and end time.

Parameters

string $startTime
string $endTime

Return Value

$this

$this unlessBetween(string $startTime, string $endTime)

Schedule the event to not run between start and end time.

Parameters

string $startTime
string $endTime

Return Value

$this

$this everyMinute()

Schedule the event to run every minute.

Return Value

$this

$this everyTwoMinutes()

Schedule the event to run every two minutes.

Return Value

$this

$this everyThreeMinutes()

Schedule the event to run every three minutes.

Return Value

$this

$this everyFourMinutes()

Schedule the event to run every four minutes.

Return Value

$this

$this everyFiveMinutes()

Schedule the event to run every five minutes.

Return Value

$this

$this everyTenMinutes()

Schedule the event to run every ten minutes.

Return Value

$this

$this everyFifteenMinutes()

Schedule the event to run every fifteen minutes.

Return Value

$this

$this everyThirtyMinutes()

Schedule the event to run every thirty minutes.

Return Value

$this

$this hourly()

Schedule the event to run hourly.

Return Value

$this

$this hourlyAt(array|int $offset)

Schedule the event to run hourly at a given offset in the hour.

Parameters

array|int $offset

Return Value

$this

$this everyTwoHours()

Schedule the event to run every two hours.

Return Value

$this

$this everyThreeHours()

Schedule the event to run every three hours.

Return Value

$this

$this everyFourHours()

Schedule the event to run every four hours.

Return Value

$this

$this everySixHours()

Schedule the event to run every six hours.

Return Value

$this

$this daily()

Schedule the event to run daily.

Return Value

$this

$this at(string $time)

Schedule the command at a given time.

Parameters

string $time

Return Value

$this

$this dailyAt(string $time)

Schedule the event to run daily at a given time (10:00, 19:30, etc).

Parameters

string $time

Return Value

$this

$this twiceDaily(int $first = 1, int $second = 13)

Schedule the event to run twice daily.

Parameters

int $first
int $second

Return Value

$this

$this weekdays()

Schedule the event to run only on weekdays.

Return Value

$this

$this weekends()

Schedule the event to run only on weekends.

Return Value

$this

$this mondays()

Schedule the event to run only on Mondays.

Return Value

$this

$this tuesdays()

Schedule the event to run only on Tuesdays.

Return Value

$this

$this wednesdays()

Schedule the event to run only on Wednesdays.

Return Value

$this

$this thursdays()

Schedule the event to run only on Thursdays.

Return Value

$this

$this fridays()

Schedule the event to run only on Fridays.

Return Value

$this

$this saturdays()

Schedule the event to run only on Saturdays.

Return Value

$this

$this sundays()

Schedule the event to run only on Sundays.

Return Value

$this

$this weekly()

Schedule the event to run weekly.

Return Value

$this

$this weeklyOn(int $day, string $time = '0:0')

Schedule the event to run weekly on a given day and time.

Parameters

int $day
string $time

Return Value

$this

$this monthly()

Schedule the event to run monthly.

Return Value

$this

$this monthlyOn(int $day = 1, string $time = '0:0')

Schedule the event to run monthly on a given day and time.

Parameters

int $day
string $time

Return Value

$this

$this twiceMonthly(int $first = 1, int $second = 16, string $time = '0:0')

Schedule the event to run twice monthly at a given time.

Parameters

int $first
int $second
string $time

Return Value

$this

$this lastDayOfMonth(string $time = '0:0')

Schedule the event to run on the last day of the month.

Parameters

string $time

Return Value

$this

$this quarterly()

Schedule the event to run quarterly.

Return Value

$this

$this yearly()

Schedule the event to run yearly.

Return Value

$this

$this days(array|mixed $days)

Set the days of the week the command should run on.

Parameters

array|mixed $days

Return Value

$this

$this timezone(DateTimeZone|string $timezone)

Set the timezone the date should be evaluated on.

Parameters

DateTimeZone|string $timezone

Return Value

$this

protected $this spliceIntoPosition(int $position, string $value)

Splice the given value into the given position of the expression.

Parameters

int $position
string $value

Return Value

$this

protected array closureParameterTypes(Closure $closure)

Get the class names / types of the parameters of the given Closure.

Parameters

Closure $closure

Return Value

array

Exceptions

ReflectionException

protected string firstClosureParameterType(Closure $closure)

Get the class name of the first parameter of the given Closure.

Parameters

Closure $closure

Return Value

string

Exceptions

RuntimeException

void __construct(EventMutex $mutex, string $command, DateTimeZone|string|null $timezone = null)

Create a new event instance.

Parameters

EventMutex $mutex
string $command
DateTimeZone|string|null $timezone

Return Value

void

string getDefaultOutput()

Get the default output depending on the OS.

Return Value

string

void run(Container $container)

Run the given event.

Parameters

Container $container

Return Value

void

string mutexName()

Get the mutex name for the scheduled command.

Return Value

string

protected void runCommandInForeground(Container $container)

Run the command in the foreground.

Parameters

Container $container

Return Value

void

protected void runCommandInBackground(Container $container)

Run the command in the background.

Parameters

Container $container

Return Value

void

void callBeforeCallbacks(Container $container)

Call all of the "before" callbacks for the event.

Parameters

Container $container

Return Value

void

void callAfterCallbacks(Container $container)

Call all of the "after" callbacks for the event.

Parameters

Container $container

Return Value

void

void callAfterCallbacksWithExitCode(Container $container, int $exitCode)

Call all of the "after" callbacks for the event.

Parameters

Container $container
int $exitCode

Return Value

void

string buildCommand()

Build the command string.

Return Value

string

bool isDue(Application $app)

Determine if the given event should run based on the Cron expression.

Parameters

Application $app

Return Value

bool

bool runsInMaintenanceMode()

Determine if the event runs in maintenance mode.

Return Value

bool

protected bool expressionPasses()

Determine if the Cron expression passes.

Return Value

bool

bool runsInEnvironment(string $environment)

Determine if the event runs in the given environment.

Parameters

string $environment

Return Value

bool

bool filtersPass(Application $app)

Determine if the filters pass for the event.

Parameters

Application $app

Return Value

bool

$this storeOutput()

Ensure that the output is stored on disk in a log file.

Return Value

$this

$this sendOutputTo(string $location, bool $append = false)

Send the output of the command to a given location.

Parameters

string $location
bool $append

Return Value

$this

$this appendOutputTo(string $location)

Append the output of the command to a given location.

Parameters

string $location

Return Value

$this

$this emailOutputTo(array|mixed $addresses, bool $onlyIfOutputExists = false)

E-mail the results of the scheduled operation.

Parameters

array|mixed $addresses
bool $onlyIfOutputExists

Return Value

$this

Exceptions

LogicException

$this emailWrittenOutputTo(array|mixed $addresses)

E-mail the results of the scheduled operation if it produces output.

Parameters

array|mixed $addresses

Return Value

$this

Exceptions

LogicException

$this emailOutputOnFailure(array|mixed $addresses)

E-mail the results of the scheduled operation if it fails.

Parameters

array|mixed $addresses

Return Value

$this

protected void ensureOutputIsBeingCaptured()

Ensure that the command output is being captured.

Return Value

void

protected void emailOutput(Mailer $mailer, array $addresses, bool $onlyIfOutputExists = false)

E-mail the output of the event to the recipients.

Parameters

Mailer $mailer
array $addresses
bool $onlyIfOutputExists

Return Value

void

protected string getEmailSubject()

Get the e-mail subject line for output results.

Return Value

string

$this pingBefore(string $url)

Register a callback to ping a given URL before the job runs.

Parameters

string $url

Return Value

$this

$this pingBeforeIf(bool $value, string $url)

Register a callback to ping a given URL before the job runs if the given condition is true.

Parameters

bool $value
string $url

Return Value

$this

$this thenPing(string $url)

Register a callback to ping a given URL after the job runs.

Parameters

string $url

Return Value

$this

$this thenPingIf(bool $value, string $url)

Register a callback to ping a given URL after the job runs if the given condition is true.

Parameters

bool $value
string $url

Return Value

$this

$this pingOnSuccess(string $url)

Register a callback to ping a given URL if the operation succeeds.

Parameters

string $url

Return Value

$this

$this pingOnFailure(string $url)

Register a callback to ping a given URL if the operation fails.

Parameters

string $url

Return Value

$this

protected Closure pingCallback(string $url)

Get the callback that pings the given URL.

Parameters

string $url

Return Value

Closure

$this runInBackground()

State that the command should run in background.

Return Value

$this

$this user(string $user)

Set which user the command should run as.

Parameters

string $user

Return Value

$this

$this environments(array|mixed $environments)

Limit the environments the command should run in.

Parameters

array|mixed $environments

Return Value

$this

$this evenInMaintenanceMode()

State that the command should run even in maintenance mode.

Return Value

$this

$this withoutOverlapping(int $expiresAt = 1440)

Do not allow the event to overlap each other.

Parameters

int $expiresAt

Return Value

$this

$this onOneServer()

Allow the event to only run on one server for each cron expression.

Return Value

$this

$this when(Closure|bool $callback)

Register a callback to further filter the schedule.

Parameters

Closure|bool $callback

Return Value

$this

$this skip(Closure|bool $callback)

Register a callback to further filter the schedule.

Parameters

Closure|bool $callback

Return Value

$this

$this before(Closure $callback)

Register a callback to be called before the operation.

Parameters

Closure $callback

Return Value

$this

$this after(Closure $callback)

Register a callback to be called after the operation.

Parameters

Closure $callback

Return Value

$this

$this then(Closure $callback)

Register a callback to be called after the operation.

Parameters

Closure $callback

Return Value

$this

$this thenWithOutput(Closure $callback, bool $onlyIfOutputExists = false)

Register a callback that uses the output after the job runs.

Parameters

Closure $callback
bool $onlyIfOutputExists

Return Value

$this

$this onSuccess(Closure $callback)

Register a callback to be called if the operation succeeds.

Parameters

Closure $callback

Return Value

$this

$this onSuccessWithOutput(Closure $callback, bool $onlyIfOutputExists = false)

Register a callback that uses the output if the operation succeeds.

Parameters

Closure $callback
bool $onlyIfOutputExists

Return Value

$this

$this onFailure(Closure $callback)

Register a callback to be called if the operation fails.

Parameters

Closure $callback

Return Value

$this

$this onFailureWithOutput(Closure $callback, bool $onlyIfOutputExists = false)

Register a callback that uses the output if the operation fails.

Parameters

Closure $callback
bool $onlyIfOutputExists

Return Value

$this

protected Closure withOutputCallback(Closure $callback, bool $onlyIfOutputExists = false)

Get a callback that provides output.

Parameters

Closure $callback
bool $onlyIfOutputExists

Return Value

Closure

$this name(string $description)

Set the human-friendly description of the event.

Parameters

string $description

Return Value

$this

$this description(string $description)

Set the human-friendly description of the event.

Parameters

string $description

Return Value

$this

string getSummaryForDisplay()

Get the summary of the event for display.

Return Value

string

Carbon nextRunDate(DateTimeInterface|string $currentTime = 'now', int $nth = 0, bool $allowCurrentDate = false)

Determine the next due date for an event.

Parameters

DateTimeInterface|string $currentTime
int $nth
bool $allowCurrentDate

Return Value

Carbon

string getExpression()

Get the Cron expression for the event.

Return Value

string

$this preventOverlapsUsing(EventMutex $mutex)

Set the event mutex implementation to be used.

Parameters

EventMutex $mutex

Return Value

$this