本文实例讲述了Yii实现Command任务处理的方法。分享给大家供大家参考,具体如下:

1.配置,执行任务所需要的组件

任务配置文件:/protected/config/console.php

配置方法跟配置main文件差不多

<?php
// This is the configuration for yiic console application.
// Any writable CConsoleApplication properties can be configured here.
return array(
  "basePath"=>dirname(__FILE__).DIRECTORY_SEPARATOR."..",
  "name"=>"My Console Application",
  // application components
  // 自动载入的模型和组件类
  "import"=>array(
      "application.models.*",//载入"application/models/"文件夹下的所有模型类
      "application.components.*",//载入"application/components/"文件夹下的所有应用组件类
      "application.extensions.*",//载入"application/extensions/"文件夹下的所有应用组件类
  ),
  "components"=>array(
      // uncomment the following to use a MySQL database
      "db"=>array(
          "connectionString" => "mysql:host=localhost;dbname=dbname",//连接mysql数据库
          "emulatePrepare" => true,
          "username" => "root",//MySQL数据库用户名
          "password" => "123456",//MySQL数据库用户密码
          "charset" => "utf8",//MySQL数据库编码
          "tablePrefix" => "zd_", //MySQL数据库表前缀
          "enableProfiling"=>true,
          "enableParamLogging"=>true,
      ),
      //加载Email组件
      "mailer" => array(
          "class"   => "application.extensions.mailer.EMailer",
      ),
  ),
);

2.任务文件

放在 /protected/commands/ 文件目录下继承 CConsoleCommand 基类的为任务文件 命名方法为   任务名称+Command

例如 GoCommand.php

<?php
/**
 * 自动运行文件
 */
class GoCommand extends CConsoleCommand
{
  /**
   * 死循环输出
   */
  public function run(){
    for($i=1;$i>0;$i++){
      self::echoWord($i);
      sleep(2);//休眠2秒
      //跳出
      if(i==500){
        break;
      }
    }
  }
  /**
   * 输出hollo word
   */
  public function echoWord($i){
    echo "hollo word --$i
";
  }
}

3.执行任务

打开命令行工具,进入项目的/protected 目录下 输入yiic命令即出现提示,提示列表显示刚才写的任务文件

E:projectappprotected>yiic
Yii command runner (based on Yii v1.1.12)
Usage: E:zeeezydprotectedyiic.php <command-name> [parameters...]
The following commands are available:
- go
- mailqueue
- message
- migrate
- shell
- webapp
To see individual command help, use the following:

执行命令 yiic go 可实现任务处理

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。