Файл: gapps/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php
Строк: 122
<?php
namespace IlluminateConsoleScheduling;
use SymfonyComponentProcessProcessUtils;
use SymfonyComponentProcessPhpExecutableFinder;
class Schedule
{
/**
* All of the events on the schedule.
*
* @var array
*/
protected $events = [];
/**
* Add a new callback event to the schedule.
*
* @param string $callback
* @param array $parameters
* @return IlluminateConsoleSchedulingEvent
*/
public function call($callback, array $parameters = [])
{
$this->events[] = $event = new CallbackEvent($callback, $parameters);
return $event;
}
/**
* Add a new Artisan command event to the schedule.
*
* @param string $command
* @param array $parameters
* @return IlluminateConsoleSchedulingEvent
*/
public function command($command, array $parameters = [])
{
$binary = ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false));
if (defined('HHVM_VERSION')) {
$binary .= ' --php';
}
if (defined('ARTISAN_BINARY')) {
$artisan = ProcessUtils::escapeArgument(ARTISAN_BINARY);
} else {
$artisan = 'artisan';
}
return $this->exec("{$binary} {$artisan} {$command}", $parameters);
}
/**
* Add a new command event to the schedule.
*
* @param string $command
* @param array $parameters
* @return IlluminateConsoleSchedulingEvent
*/
public function exec($command, array $parameters = [])
{
if (count($parameters)) {
$command .= ' '.$this->compileParameters($parameters);
}
$this->events[] = $event = new Event($command);
return $event;
}
/**
* Compile parameters for a command.
*
* @param array $parameters
* @return string
*/
protected function compileParameters(array $parameters)
{
return collect($parameters)->map(function ($value, $key) {
return is_numeric($key) ? $value : $key.'='.(is_numeric($value) ? $value : ProcessUtils::escapeArgument($value));
})->implode(' ');
}
/**
* Get all of the events on the schedule.
*
* @return array
*/
public function events()
{
return $this->events;
}
/**
* Get all of the events on the schedule that are due.
*
* @param IlluminateContractsFoundationApplication $app
* @return array
*/
public function dueEvents($app)
{
return array_filter($this->events, function ($event) use ($app) {
return $event->isDue($app);
});
}
}