期权记-ETF期权开户导航 期权记是专业的50ETF300ETF期权开户投资交易导航

Yii创建cli应用

有时我们并不希望某个方法被外部访问,这时可以使用cli脚本来解决这个问题。相对于web应用,外界无法访问cli脚本。另外执行cli应用不需要经过web前端软件(nginx/apache)转发,直接php解析执行,效率更高。

Yii原生支持cli应用,即console应用。protected文件夹下的yiic文件,这是cli应用的入口文件。cli应用的默认配置文件是protected/configs/console.php。根据YII的规定,yii框架的cli程序必须位于protected/commands文件夹下。然而这个文件夹默认是没有生成的,我们需要自己新建。

yii的cli应用类必须继承自 CConsoleCommand ,在其中可以定义各种action,同正常的controller一样使用。由于action是在1.1.5之后新增的,在这之前需要实现的是run方法。将configs/console.php配置好后, 下面是一个cli程序的示例:

class TestCommand extends CConsoleCommand {     public function run()     {         echo Yii::getVersion(), PHP_EOL;     } } 

将工作目录切换到protected下,执行 ./yiic test 即可看到输出。

在yii 1.1.5之后的版本支持和controller类似的action方法,这个时候就可以不在实现run方法了,上述代码可以改造如下:

class TestCommand extends CConsoleCommand {     public function actionVersion()     {         echo Yii::getVersion(), PHP_EOL;     }      public function actionBasePath()     {         echo Yii::app()->basePath, PHP_EOL;     } } 

在protected目录下运行 ./yiic test version 命令即可看到同样的输出。

注意 run 方法和其他action方法不能同时存在一个command类目里面。yii目前的规则是如果有run方法就直接执行run方法内容,不管后面传入的是什么。例如对于上例,如果有 run 方法的存在,那么 version 方法和 basePath 方法就不再其作用,即使已经显示的指明了action方法: ./yiic test version

如果没有run方法,cli程序和正常controller一样,执行默认的index方法。为了程序的复用和分类管理,建议使用action方法而非实现run方法。

本站声明:网站内容来源于网络,如有侵权,请联系我们https://www.qiquanji.com,我们将及时处理。

微信扫码关注

更新实时通知

作者:期权小韭菜 分类:网络教程 浏览:
请先 登录 再评论,若不是会员请先 注册