PHP Yii 命令行程序以及定时任务详解

本文介绍了如何使用PHP Yii框架编写命令行程序,以实现自动化测试场景,如模拟用户下单。文章详细阐述了编写Command类、运行自定义命令和动作的原理,以及如何通过定时任务执行这些命令。通过创建脚本文件和配置系统计划任务,实现定期运行测试脚本,提高工作效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为啥要编写命令行程序?

命令行程序通常是一个脚本,但是PHP Yii 是web开发语言,如何能开发脚本程序?

所以,首先我们要明白使用PHP Yii 编写脚本语言的目的和原理。

  • 目的

设想这么一个场景,你开发了一个电子商务网站,在测试阶段,你希望模拟用户的下单操作。或者你开发了一个类股票网站,在测试阶段,你需要模拟用户的委托买入、卖出操作,并撮合用户的买入和卖出。毕竟,如果想模拟大量用户的操作,而通过手动在数据库中添加测试数据,这工作量有点大。

所以,编写Yii 脚本的目的是,通过运行脚本,自动生成用户的下单操作。这个类似于一个服务器端的程序,可以用JAVA写,但是我们是PHP程序员啊,当然用PHP实现了。

  • 原理和流程
使用PHP Yii 编写脚本的程序的基本原理是这样的:

(1)编写一个Command类,类名和文件名以Command为后缀,同时继承父类CConsoleCommand,文件存放在工程下的protected/commands/目录下,例如:

<span style="font-family:Tahoma;font-size:12px;">class TestCommand extends CConsoleCommand</span>

(2)编写Command类的动作,类似控制器的动作,动作名需要以action为前缀,例如:

<span style="font-family:Tahoma;font-size:12px;">public function actionTest(){
 	echo "command test successfully.";
 }</span>


echo的内容会打印在Windows DOS或Linux的命令行程序页面上。完整的命令类如下:

<span style="font-family:Tahoma;font-size:12px;"><?php
class FarmProduceMatchCommand extends CConsoleCommand
{

 /**
  * Execute the action.
  * @param array command line parameters specific for this command
  */</span>
<span style="font-family:Tahoma;font-size:12px;">/*
public function run($args)
{
if(!isset($args[0]))
$this->usageError('please input params.');
echo('you input :\n');
var_dump($args);
}
*/
 public function actionTest(){
 	echo "command test successfully.";
 }
}</span>


(3)如何运行自定义的Command类和动作呢,很简单,不需要配置PHP和Yii的环境和变量。打开Dos(windows系统)或Terminal(Linux系统),在命令行,将目录定位到你的yii工程的protected目录,该目录下有yiic命令程序。比如,我的工程目录在“C:\xampp\htdocs\syjjq2”,“syjjq2”就是我的yii工程。在命令行将目录定位到syjjq2工程下的protected目录,工程目录结构如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值