标题: [求助]关于CLI环境的开发
xyzoem
新手上路
Rank: 1



UID 2542
精华 0
积分 0
帖子 4
翻译 0
原创 0
阅读权限 10
注册 2008-11-13
状态 离线
发表于 2008-11-14 12:20  资料  短消息  加为好友 
[求助]关于CLI环境的开发

看手册上说的,Zend_Controller请求对象封装了请求的模块,控制器,动作以及可选的参数,还包括其他的请求环境,如HTTP,CLI,PHP-GTK.

但是在CLI环境下应该如何设置,我只找到了response CLI的类,但是没有找到request CLI的类,用Request_Simple吗?还有其他什么需要特别设置的?

顶部
haohappy
超级版主
Rank: 8Rank: 8
PHPEye站长


UID 2
精华 11
积分 110
帖子 288
翻译 6
原创 1
阅读权限 150
注册 2007-5-2
状态 离线
发表于 2008-11-14 14:24  资料  短消息  加为好友  添加 haohappy 为MSN好友 通过MSN和 haohappy 交谈
你是要写一个命令行下的脚本吗? 试试这个:
http://www.phpeye.com/zf/zend.console.getopt.html

在命令行下似乎没必要用Controller。。手册里这样写只是为了表示存在这种可能,但我个人觉得实际上并没有什么必要,命令行下的程序通常不会用什么mvs结构。





互助共享,共同成长。
顶部
xyzoem
新手上路
Rank: 1



UID 2542
精华 0
积分 0
帖子 4
翻译 0
原创 0
阅读权限 10
注册 2008-11-13
状态 离线
发表于 2008-11-14 14:45  资料  短消息  加为好友 
对,要写一个命令行下的脚本。
确实,mcv结构没必要,但是Controller提供的环境基础和程序流程控制功能比如forward之类的很有用。能够方便实现一些比较复杂的逻辑。

顶部
haohappy
超级版主
Rank: 8Rank: 8
PHPEye站长


UID 2
精华 11
积分 110
帖子 288
翻译 6
原创 1
阅读权限 150
注册 2007-5-2
状态 离线
发表于 2008-11-16 10:11  资料  短消息  加为好友  添加 haohappy 为MSN好友 通过MSN和 haohappy 交谈


QUOTE:
原帖由 xyzoem 于 2008-11-14 14:45 发表
对,要写一个命令行下的脚本。
确实,mcv结构没必要,但是Controller提供的环境基础和程序流程控制功能比如forward之类的很有用。能够方便实现一些比较复杂的逻辑。 ...

如果你要用Controller来控制流程,那么你可以模仿Zend/Controller/Request/Http.php自己写一个CLI专用的请求对象,文件就放在这个目录下,然后把控制器的Request对象设置为你自己写的这个。

Request class里面的方法包括获取,设置命令行参数,获取当前控制器,当前方法之类的。这样也就能用了。

[ 本帖最后由 haohappy 于 2008-11-16 10:12 编辑 ]





互助共享,共同成长。
顶部
xyzoem
新手上路
Rank: 1



UID 2542
精华 0
积分 0
帖子 4
翻译 0
原创 0
阅读权限 10
注册 2008-11-13
状态 离线
发表于 2008-11-19 16:14  资料  短消息  加为好友 
搞定了,除了需要写一个CLI专用的request,还要写一个CLI专用的router。
入口代码:

$frontController->setResponse('Zend_Controller_Response_Cli');
$frontController->setRouter('Zend_Controller_Router_Cli');
$cliRequest = new Zend_Controller_Request_Cli();
$cliRequest->setModuleName('batch');
$cliRequest->setControllerName('index');
$cliRequest->setActionName('test');
$frontController->setRequest($cliRequest);
$frontController->dispatch();

如果要直接通过命令行的参数取得程序需要的参数,需要重写router类的route方法

顶部
 


PHPEye开源社区


当前时区 GMT+8, 现在时间是 2010-9-7 19:10

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.023592 second(s), 8 queries , Gzip enabled

清除 Cookies - 联系我们 - PHPEye开源社区 - Archiver