Heim  >  Artikel  >  Backend-Entwicklung  >  每天laravel-20160712|Schedule

每天laravel-20160712|Schedule

WBOY
WBOYOriginal
2016-06-23 13:10:14913Durchsuche

<?phpnamespace Illuminate\Console\Scheduling;use Symfony\Component\Process\ProcessUtils;use Symfony\Component\Process\PhpExecutableFinder;// use namespace.class Schedule{    /**     * All of the events on the schedule.     *     * @var array     */    protected $events = [];// events schedule array set to store the events   // by the way, all of this is function or instance of class    /**     * Add a new callback event to the schedule.     *     * @param  string  $callback     * @param  array   $parameters     * @return \Illuminate\Console\Scheduling\Event     */    public function call($callback, array $parameters = [])    {        $this->events[] = $event = new CallbackEvent($callback, $parameters);        return $event;    }// get a instance about the event function ,and add it to the events array.    /**     * Add a new Artisan command event to the schedule.     *     * @param  string  $command     * @param  array  $parameters     * @return \Illuminate\Console\Scheduling\Event     */    public function command($command, array $parameters = [])    {        $binary = ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false));       // change argument        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);    }// the author said this is a new artisan command   // suport the HHVM ,good    /**     * Add a new command event to the schedule.     *     * @param  string  $command     * @param  array  $parameters     * @return \Illuminate\Console\Scheduling\Event     */    public function exec($command, array $parameters = [])    {        if (count($parameters)) {            $command .= ' '.$this->compileParameters($parameters);        }// prepare the command.        $this->events[] = $event = new Event($command);// add the instance to the compileParameters        return $event;    }// Add a new command event to the schedule    /**     * 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(' ');    }// compile or change the parameters for you want.    /**     * Get all of the events on the schedule.     *     * @return array     */    public function events()    {        return $this->events;    }// big _get    /**     * Get all of the events on the schedule that are due.     *     * @param  \Illuminate\Contracts\Foundation\Application  $app     * @return array     */    public function dueEvents($app)    {        return array_filter($this->events, function ($event) use ($app) {            return $event->isDue($app);        });    }// a super big _get function   // this can get all the events on the schedule that are due.}// at last ,this is a events schedule, that be set bigset get bigget and change the params


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn