/
githubmirror
/
framework
Обзор
Документация
Войти
/
githubmirror
/
framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
13.x
src/Illuminate/Console/Scheduling/ManagesAttributes.php
283 строки
6 KB
Luke Kuzmish
[13.x] Add attributes to Scheduler (#60255)
25 май 2026, 01:42
Не верифицирован
25 май 2026, 01:42
d8b5e46
Код
Авторство
О чём код?
<?php namespace Illuminate\Console\Scheduling; use Illuminate\Support\Reflector; trait ManagesAttributes { /** * The cron expression representing the event's frequency. * * @var string */ public $expression = '* * * * *'; /** * How often to repeat the event during a minute. * * @var int|null */ public $repeatSeconds = null; /** * The timezone the date should be evaluated on. * * @var \DateTimeZone|string */ public $timezone; /** * The user the command should run as. * * @var string|null */ public $user; /** * The list of environments the command should run under. * * @var array */ public $environments = []; /** * Indicates if the command should run in maintenance mode. * * @var bool */ public $evenInMaintenanceMode = false; /** * Indicates if the command should run even when the scheduler is paused. * * @var bool */ public $evenWhenPaused = false; /** * Indicates if the command should not overlap itself. * * @var bool */ public $withoutOverlapping = false; /** * Indicates if the mutex should be released when the process receives a termination signal. * * @var bool */ public $releaseOnTerminationSignals = true; /** * Indicates if the command should only be allowed to run on one server for each cron expression. * * @var bool */ public $onOneServer = false; /** * The number of minutes the mutex should be valid. * * @var int */ public $expiresAt = 1440; /** * Indicates if the command should run in the background. * * @var bool */ public $runInBackground = false; /** * The array of filter callbacks. * * @var array */ protected $filters = []; /** * The array of reject callbacks. * * @var array */ protected $rejects = []; /** * The human-readable description of the event. * * @var string|null */ public $description; /** * The arbitrary attributes stored with the event. * * @var array<array-key, mixed> */ public $attributes = []; /** * Set which user the command should run as. * * @param string $user * @return $this */ public function user($user) { $this->user = $user; return $this; } /** * Limit the environments the command should run in. * * @param mixed $environments * @return $this */ public function environments($environments) { $this->environments = is_array($environments) ? $environments : func_get_args(); return $this; } /** * State that the command should run even in maintenance mode. * * @return $this */ public function evenInMaintenanceMode() { $this->evenInMaintenanceMode = true; return $this; } /** * State that the command should run even when the scheduler is paused. * * @return $this */ public function evenWhenPaused() { $this->evenWhenPaused = true; return $this; } /** * Do not allow the event to overlap each other. * * The expiration time of the underlying cache lock may be specified in minutes. * * @param int $expiresAt * @param bool $releaseOnTerminationSignals * @return $this */ public function withoutOverlapping($expiresAt = 1440, $releaseOnTerminationSignals = true) { $this->withoutOverlapping = true; $this->expiresAt = $expiresAt; $this->releaseOnTerminationSignals = $releaseOnTerminationSignals; return $this->skip(function () { return $this->mutex->exists($this); }); } /** * Allow the event to only run on one server for each cron expression. * * @return $this */ public function onOneServer() { $this->onOneServer = true; return $this; } /** * State that the command should run in the background. * * @return $this */ public function runInBackground() { $this->runInBackground = true; return $this; } /** * Register a callback to further filter the schedule. * * @param \Closure|bool $callback * @return $this */ public function when($callback) { $this->filters[] = Reflector::isCallable($callback) ? $callback : function () use ($callback) { return $callback; }; return $this; } /** * Register a callback to further filter the schedule. * * @param \Closure|bool $callback * @return $this */ public function skip($callback) { $this->rejects[] = Reflector::isCallable($callback) ? $callback : function () use ($callback) { return $callback; }; return $this; } /** * Set the human-friendly description of the event. * * @param string $description * @return $this */ public function name($description) { return $this->description($description); } /** * Set the human-friendly description of the event. * * @param string $description * @return $this */ public function description($description) { $this->description = $description; return $this; } /** * Set arbitrary attributes to store with the event. * * @param array<array-key, mixed> $attributes * @return $this */ public function withAttributes($attributes) { $this->attributes = array_merge_recursive($this->attributes, $attributes); return $this; } }