PHP命令传递参数,Yii下命令$args来源

在使用YII框架的时候,在架构该框架之后会在protected文件夹下生成一个yiic命令工具,在这里你可以使用YII自带的命令,首先你需要现在commands下新建一个command命令php文件,文件名格式如DemoCommand.php

代码如下:

 代码如下 复制代码

class DemoCommand extends CConsoleCommand{
    //进程数
    private $thread = 10;
    public function run($args)
    {
        $demos= $this->getDemo($args[0]);
        echo "运行开始******************************n".date('Y-m-d H:i:s');
        foreach ($demos as $demo)
        {
            $this->getTest($demo);
        }
        echo "运行完成******************************n".date('Y-m-d H:i:s');
              
    }
      
    public function getTest()
    {
        //此处为www.111cn.net你想要执行的代码,可以是php的任何代码包括SQL等
    }
      
    public function getDemo($index)
    {
        //此处为你想要执行的代码,可以是php的任何代码包括SQL等
        return $index;
    }
}

 看到这里,不知道大家有没有什么疑问,有没有注意到run方法中的一个变量$args,而且在run方法下也有调用了$args[0],可以知道$args一定是一个数组。但是$args是从哪里来的呢?这个我们就需要追究一下php命令行的参数传递了,如:H:workspace>php test.php arg1 arg2
       光看这个应该看不太懂吧,那就看看YII下执行command命令时候的参数吧,一下为Linux下的定时执行命令程序
0 15 1,11,21 * * cd /文件路径/&&/usr/local/php/bin/php yiic demo 0 >> /usr/home/test.log 【前面的数字代表,每个月的1、11、21号的下午3点执行命令】
       在Yii的protected下执行命令方式:/usr/local/php/bin/php yiic create_excellenthall 0    注意到最后的0了吗?这个就是$args传递过来的,你可以换成数组中的任意一个键值。
描述的应该不是很专业,希望可以对有需要的人有帮助!

时间: 2024-09-20 06:19:36

PHP命令传递参数,Yii下命令$args来源的相关文章

Linux下C程序设计(4)----操作环境变量 、程序传递参数getopt getopt_long操作、获取时间

通过命令传递参数查看环境变量  /************************************************************************* > File Name: env.c > Author: > Mail: > Created Time: Tue 24 Feb 2015 10:42:21 PM PST *******************************************************************

WPF浏览器应用程序中页面与页面之间如何传递参数

问题描述 WPF浏览器应用程序中页面与页面之间如何传递参数,以前写应和程序的时候比如:datatabledt=newdatatable();Awindowaw=newAwindow(dt);aw.show();可以通过窗体的构造函数传递参数至下一个窗体,在WPF浏览器应用程序中转至下一页时怎样把参数传递下去? 解决方案 解决方案二: 解决方案三:如何要传一个datatable有什么办法?解决方案四:如果要在两个页面之前传递一个DataTable用什么办法?解决方案五:接受DataTable的页面

Linux下传递参数时的Argument list too long错误

这篇文章是回复前几天在论坛一个朋友提出的问题,今天有空,整理了一下,发布出来,供大家参考! 当Linux下试图传递太多参数给一个系统命令(ls *; cp *; rm *; cat *; etc-)时,就会出现"Argument list too long"错误.本文将提供4种解决方法,按复杂程度由低到高排列. 方法#1: 手动把命令行参数分成较小的部分 例1 mv [a-l]* ../directory2 mv [m-z]* ../directory2 这是4种方法里最简单的,但是远

php- js在不跳转的情况下向一个页面传递参数

问题描述 js在不跳转的情况下向一个页面传递参数 需求是把textarea传递到savexml.php进行数据保存,但同时我希望页面还留着当前页面.代码如下: <form name=""form1"" id=""form1"" method=""post"" action=""newtest.php""> <input type=

vb参数传递-VB高手请进!在线等。。——shell使用dos命令时参数的传递

问题描述 VB高手请进!在线等..--shell使用dos命令时参数的传递 怎样才能将%LOGPATH%所替代的内容传递到其中? (不要写成调用bat的形式) 解决方案 不行的,%logpath%不能包在括号里,应该这样 Shell "cmd /k mkdir "+LOGPATH+" > nul 2>&1", vbNormalNoFocus vb调用dos是直接运行引号内的,而不给某一变量赋值.另外包在百分号内的是bat变量而不是vb的变量 解决

04_Nginx命令行参数,控制信号,Nginx启动、停止、重启命令

 Nginx支持一下命令行参数 -? | -h   打印出命令行参数的帮助 [root@localhost nginx]# ./nginx -? nginx version: nginx/1.8.0 Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]   Options:   -?,-h         : this help   -v            : show version a

详解linux下tar压缩解压缩文件夹的命令与参数_Linux

前言 tar在linux上是常用的打包.压缩.加压缩工具,他的参数很多,这篇文章仅仅列举常用的压缩与解压缩参数,下面直接先上三个常用命令,一起来看看吧 1.压缩当前目录下文件夹/文件test到test.tar.gz: tar -zcvf test.tar.gz test 2.解压缩当前目录下的file.tar.gz到file: tar -zxvf file.tar.gz 参数详解 五个命令中必选一个      -c: 建立压缩档案      -x:解压      -t:查看内容      -r:

Shell脚本传递参数的3种方法比较

  这篇文章主要介绍了Shell脚本传递参数的3种方法比较,本文直接给出代码示例,在代码中包含详细注解,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65

如何获取其它程序的命令行参数

开发环境:VC6 Windows XP 测试环境:WindowsXP 我们都知道,在程序里获取命令行参数很简单,WinMain函数会以参数的形式传递给我们,或者可以调用API GetCommandLine 获取.但是GetCommandLine函数不接受参数,获取的只是自己程序的命令行参数.那么如果我们想获取别的应用程序的命令行参数应该怎么办呢? 有的同学说,既然GetCommandLine只能获取本程序的命令行参数,我们可以在其它进程里插入一个Dll,在那个进程的地址空间调用GetComman