每天laravel-20160712|Schedule

<?php

namespace 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
时间: 2024-08-05 13:00:34

每天laravel-20160712|Schedule的相关文章

PHP Laravel定时任务Schedule

前提:本文方法是利用Linux的crontab定时任务来协助实现Laravel调度(Mac也一样). 一.首先添加Crontab定时任务,这里只做简单介绍. 用命令crontab -e 添加如下内容 * * * * * /usr/local/bin/php /usr/local/var/www/projectName/artisan schedule:run >> /dev/null 2>&1 1 2 如图: 上面命令Crontab会每分钟去调Laravel的schedule命令

Windows上使用Vagrant打造Laravel Homestead可协同跨平台开发环境

1.简介 Laravel 致力于让整个 PHP 开发过程变得让人愉悦,包括本地开发环境,为此官方为我们提供了一整套本地开发环境 —— Laravel Homestead. Laravel Homestead 是一个打包好各种 Laravel 开发所需要的工具及环境的 Vagrant 盒子(Vagrant 提供了一个便捷的方式来管理和设置虚拟机),该盒子为我们提供了优秀的开发环境,有了它,我们不再需要在本地环境安装 PHP.HHVM.Web服务器以及其它工具软件,我们也完全不用再担心误操作搞乱操作

Laravel 虚拟开发环境 Homestead

简介 Laravel 致力于让你在 PHP 开发过程中更加轻松愉快,这其中也包括本地开发环境的搭建. Vagrant 提供了一种简单.优雅的方式来管理和配置虚拟机. Laravel Homestead 是一个官方预封装的 Vagrant box,它为你提供了一个完美的开发环境,你无需在本地安装 PHP ,web 服务器,或其他服务软件. Vagrant box 是完全一次性的,你不用担心系统被搞乱!如果有什么地方出错了,你可以在几分钟内销毁并重建 box ! Homestead 可以运行在 Wi

Laravel框架定时任务2种实现方式示例

本文实例讲述了Laravel框架定时任务2种实现方式.分享给大家供大家参考,具体如下: 第一种 1.生成一个commands文件 > php artisan make:command test 2.打开文件进行修改 laravel\App\Console\Commands\test.php <?php namespace App\Console\Commands; use Illuminate\Console\Command; use Illuminate\Support\Facades\Lo

Laravel系列教程一:安装及环境配置

免费视频教程地址https://laravist.com/series/laravel-5-basic 最近在SF上面看到越来越多的Laravel相关的问题,而作为一个Laravel的脑残粉,本来打算有机会录视频教程放出来的,不过这个计划貌似由于某些原因必须得推迟一段时间,所以现在先把文章的系列教程写出来吧. 首先需要说明的是,这个教程对于完全没有上手Laravel的人来说,我尽量将一些概念和重点说清楚,不过你也不需要担心这需要花很多时间来跟着这个教程学习Laravel,我相信,如果你认认真真跟

[ Laravel 5.1 文档 ] 服务 —— 任务调度

1.简介 在以前,开发者需要为每一个需要调度的任务编写一个Cron条目,这是很让人头疼的事.你的任务调度不在源码控制中,你必须使用SSH登录到服务器然后添加这些Cron条目.Laravel命令调度器允许你平滑而又富有表现力地在Laravel中定义命令调度,并且服务器上只需要一个Cron条目即可. 任务调度定义在app/Console/Kernel.php文件的schedule方法中,该方法中已经包含了一个示例.你可以自由地添加你需要的调度任务到Schedule对象. 1.1 开启调度 下面是你唯

Automatically generate a sitemap in Laravel

Today my company released a package called laravel-sitemap. There are already a lot of excellent sitemap packages out there. They all have in common that you have to manually add links that must appear in the sitemap. With our new package that isn’t

Laravel教程 一:安装及环境配置

Laravel教程 一:安装及环境配置 此文章为原创文章,未经同意,禁止转载. Homestead 最近在SF上面看到越来越多的Laravel相关的问题,而作为一个Laravel的脑残粉,本来打算有机会录视频教程放出来的,不过这个计划貌似由于某些原因必须得推迟一段时间,所以现在先把文章的系列教程写出来吧. 首先需要说明的是,这个教程对于完全没有上手Laravel的人来说,我尽量将一些概念和重点说清楚,不过你也不需要担心这需要花很多时间来跟着这个教程学习Laravel,我相信,如果你认认真真跟着教

laravel 任务调度(定时执行任务)

laravel 任务调度(定时执行任务) 任务调度写在  app/Console/Kernel.PHP 文件 schedule 中,里面默认有一个例子.在 schedule 方法里放入自己的执行的代码.比如 这个是每一分钟在数据库里插入一条数据. [html] <?php namespace App\Console; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as Co

laravel创建定时任务

官方文档给出的教程已经很详细了,这里给出一些补充帮助大家理解. 英文文档:https://laravel.com/docs/5.2/scheduling 中文文档:https://laravel-china.org/docs/5.2/scheduling Starting The Scheduler 这里文档说的很简单,就是让你在服务器的crontab加入一条命令. * * * * * php /path/to/artisan schedule:run >> /dev/null 2>&a