Windows下用cmd命令实例讲解yii2.0 的控制台定时任务
Yii中的资源是和Web页面相关的文件,可为CSS文件,JavaScript文件,图片或视频等,资源放在Web可访问的目录下,直接被Web服务器调用。
有时候有些功能需要做到计划任务中去,因此就需要yii能用php命令去执行。yii2.0是支持php命令行运行的,操作方法如下:
在yii根目录下面有个“yii”文件(不是“yii.bat”),这个文件就是入口。然后“commands”目录下会默认有个“HelloController.php”控制器文件,这个是一个demo。打开这个控制器文件,源码如下(删掉了部分注释):
<?php
namespace app\commands;
use yii\console\Controller;
class HelloController extends Controller
{
/**
* This command echoes what you have entered as the message.
* @param string $message the message to be echoed.
*/
public function actionIndex($message = 'hello world')
{
echo $message . "\n";
}
}
从上面可以看出,在命令行运行时,会继承console下的Controller;而一般“controllers”目录中的控制器会继承web下的Controller。
所以在php命令行中执行yii脚本的步骤为:
1.新建一个脚本
在“commands”目录下面按照“HelloController.php”的格式新建一个控制器脚本文件。
2.在命令行执行脚本
在命令行敲入“php yii项目所在路径/yii 控制器名/方法名”,例如“php E:/wwwroot/yii2/yii hello/index”
如下图所示1:
:或下图所示2:
需要注意的是:php一定要设置环境变量后才能这么用。想知道php是否已加入环境变量,请用“php -v”命令来查看。
Yii中的三种控制器类
base\Controller.php 这个是下面两个的基类
console\Controller.php 这个是控制台控制器
web\Controller.php 这个是web控制器
总结如下:
1:command创建任务
2:Windows测试 :进入根目录 命令yii 加上你的任务如 yii hello
3:Linux测试: 同Windows
4:crontab建立: 定时时间 php目录 yii根目录/yii hello 如:01 1 * ** /opt/php/bin/php /data/www/weixin_yii/yii hello
linux ,定时任务执行方法