Yiic介绍
程序员文章站
2024-03-22 09:06:52
...
[size=xx-large]Yiic介绍[/size]
本来要介绍Yii的RBAC,但里面有部分内容需要用到Yiic,先开篇文章介绍一下Yiic,本篇主要介绍CConsoleCommand,至于其他如怎么利用Yiic创建应用等请参考Yii官方提供的文档。
yii提供了强大的命令行工具来快速的创建相关组件和应用,要执行自己写的CConsoleCommand需要按照下面的步骤来
1.配置
先来一句废话,命令行方式下的app为CConsoleApplication(位于framework\console下),而不是网页端的CWebApplication,所以一些默认的组件是没有加载,如authManager等,请参考CWebApplication的registerCoreComponents方法。
CConsoleApplication读取的配置文件为console.php(位与webapp\protected\config下),而不是main.php.其中至关重要的一项配置即为commandPath(默认是webapp\protected\commands),即我们的命令放在什么地方,我一般放在webapp\protected\commands\shell下。如果用到model,如某些AR类,也需要导入。我的配置为:
#webapp\protected\config\console.php
2.编写新类继承CConsoleCommand,需重写CConsoleCommand的run方法,在run方法中编写业务逻辑.
我们在webapp\protected\commands\shell中新建XyzCommand.php文件,其中Xyz表示命令的名字,但是需要大写第一个字母,编写XyzCommand类如下。
#webappprotected\commands\shell\XyzCommand.php
因为演示,此处只是在命令行中打印Hello Command!。
3.执行
首先需进入wepapp\protected目录,然后运行yiic查看是否有我们刚才编写的xyz命令,如下
[img]http://dl.iteye.com/upload/attachment/0074/5286/ffd76a41-be14-3657-8b28-95899644e96c.png[/img]
执行我们的命令xyz 用yiic xyz 看到结果 搞定
[img]http://dl.iteye.com/upload/attachment/0074/5288/ea442bd9-da48-3359-a30b-c0eb537f43a5.png[/img]
本来要介绍Yii的RBAC,但里面有部分内容需要用到Yiic,先开篇文章介绍一下Yiic,本篇主要介绍CConsoleCommand,至于其他如怎么利用Yiic创建应用等请参考Yii官方提供的文档。
yii提供了强大的命令行工具来快速的创建相关组件和应用,要执行自己写的CConsoleCommand需要按照下面的步骤来
1.配置
先来一句废话,命令行方式下的app为CConsoleApplication(位于framework\console下),而不是网页端的CWebApplication,所以一些默认的组件是没有加载,如authManager等,请参考CWebApplication的registerCoreComponents方法。
CConsoleApplication读取的配置文件为console.php(位与webapp\protected\config下),而不是main.php.其中至关重要的一项配置即为commandPath(默认是webapp\protected\commands),即我们的命令放在什么地方,我一般放在webapp\protected\commands\shell下。如果用到model,如某些AR类,也需要导入。我的配置为:
#webapp\protected\config\console.php
..........
'import'=>array(
'application.models.*',
),
'commandPath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'commands'.DIRECTORY_SEPARATOR.'shell',
............
2.编写新类继承CConsoleCommand,需重写CConsoleCommand的run方法,在run方法中编写业务逻辑.
我们在webapp\protected\commands\shell中新建XyzCommand.php文件,其中Xyz表示命令的名字,但是需要大写第一个字母,编写XyzCommand类如下。
#webappprotected\commands\shell\XyzCommand.php
<?php
class XyzCommand extends CConsoleCommand{
public function run($args){
//在此编写所需逻辑
echo 'Hello Command!';
}
}
因为演示,此处只是在命令行中打印Hello Command!。
3.执行
首先需进入wepapp\protected目录,然后运行yiic查看是否有我们刚才编写的xyz命令,如下
[img]http://dl.iteye.com/upload/attachment/0074/5286/ffd76a41-be14-3657-8b28-95899644e96c.png[/img]
执行我们的命令xyz 用yiic xyz 看到结果 搞定
[img]http://dl.iteye.com/upload/attachment/0074/5288/ea442bd9-da48-3359-a30b-c0eb537f43a5.png[/img]
上一篇: 纯小白之WPF连接SQLite并显示数据
下一篇: 如何优化Jupyter?
推荐阅读
-
Yiic介绍
-
阿里搜索引擎技术介绍 博客分类: 搜索引擎 阿里搜索引擎iSearchOpenSearch
-
Python之unittest框架的介绍及使用
-
【SSDB 介绍】 博客分类: 负载均衡大数据--redis缓存技术 【SSDB 介绍】
-
【JAX-RS 介绍】 博客分类: JAX-RS 【JAX-RS 介绍】
-
【 keepalive + Nginx实现高可用性及负载均衡原理介绍】 博客分类: Nginx负载均衡 【 keepalive + Nginx实现高可用性及负载均衡原理介绍】
-
Asp.net MVC3 之旅第一课 各个文件夹的介绍M/V/C 博客分类: Asp.net /.Net MVC mvc3.netC#aspasp.net
-
Asp.Net构架(Http请求处理流程)、Asp.Net 构架(Http Handler 介绍)、Asp.Net 构架(HttpModule 介绍) 博客分类: 【EasyUI】 asp.netiis浏览器编程.net
-
【java之Undertow介绍】 博客分类: Undertow 【java之Undertow介绍】
-
list(带头结点的双向循环链表)的详细介绍