zentaoPHP框架命令行机制

2014-09-01 15:12:33
王春生
34779
最后编辑:朱金勇 于 2023-03-20 08:58:50
分享链接
摘要:除了扩展机制,API机制,zentaoPHP框架还提供了命令行的入口,给大家提供了另外一种控制应用的方式。

除了扩展机制,API机制,zentaoPHP框架还提供了命令行的入口,给大家提供了另外一种控制应用的方式。

一、何谓命令行入口

使用zentaoPHP开发的应用有集中的入口。拿禅道项目管理软件举例,www/index.php是重要,也是大家平时都在使用的入口。还有就是www/install.php, www/upgrade.php,顾名思义,为安装的入口和升级的入口。这三个入口,index.php是有权限控制的,而install.php和upgrade.php则没有权限限制,只有在特定的情况下面才会起作用。正常安装或者升级之后,再访问install.php或者upgrade.php是无效的。


命令行入口位于bin/ztcli。其实它也是一段php代码。它主要是给系统管理员使用的。通过这个入口,可以非常方便的访问到禅道系统的每一个页面,从而为各种便利的操作提供了可能。

二、命令行入口的基本用法:

命令行入口有三个文件,分别是ztcli, ztcli.sh和ztcli.bat。其中ztcli是主体的php脚本。另外两个则是为了使用方便,做的封装。先来看主体脚本的执行。
在bin目录下面执行下面的命令(一定要在bin目录下面。)
语法格式:php ztcli http://xxxx/zentaopms/xxxxx(其中的php,如果找不到,则根据需要换成php可执行文件所在的绝对路径.)
举例来讲,我的禅道的访问路径是 http://pms.zentao.net,我想触发燃烧图的更新程序,命令如下:
php ztcli http://pms.zentao.net/project-computeburn.html

如果你配置的禅道访问方式是通过GET方式,那么命令则变成:
php ztcli "http://pms.zentao.net/?m=project&f=computeburn",这时后面的url地址需要用引号引起来。

也就是说你在浏览器里面看到的是什么,通过ztcli都可以访问。

三、封装

如果你php可执行文件不在PATH路径中,那么你可以修改ztcli.sh(linux)或者ztcli.bat(windows),将其中的路径补全。
比如ztcli.bat中,我可以这样写 d:\zentao\user\local\php\php.exe ztcl %*

封装好之后,你就可以直接运行ztclibat url地址就可以了。

四、高级用法

在你访问禅道的页面时候,可以将访问的资源变化一下,比如http://pms.zentao.net/project-task-8.html,返回的网页格式,把后面的.html改成.json,返回的是什么?对了,返回的是json格式的数据。如果是GET 方式,那么只需要将t参数改成json,http://pms.zentao.cn/?m=project&f=task&t=json.

通过这个超级的命令行入口,其实可以做很多事情了。具体如何使用,看大家灵活运用了。


注意:本文档是针对禅道16.5版本之前的zentaoPHP框架,禅道最新版本的二次开发文档请参照新版:
https://devel.easycorp.cn/book/extension-new/intro-52.html

评论列表
道道道 2020-05-12 11:09:26
有什么特殊的使用场景么?api机制 + curl 也可以实现的。
王春生 2020-05-17 08:56:44
计划任务里面调度的时候,可以用这种方式。直接绕开权限控制,可以访问所有的方法。:)
台灣學禪道人 2019-12-30 14:12:09
bin/ztcli目錄不就在主網站的下面一層就看到一個bin目錄,進去就看到了
盼兮~ 2019-01-09 18:49:10
刚工作第二个月就来学这个,什么都没有 所有想要个手册,咱们这现有的手册没找到方法在哪,望王老师指导一下 >&<
溺水蘩漪 2017-06-05 16:41:31
禅道还是有些难学==
2019-09-28 21:21:25
那你可以学下TP5,我觉得禅道比TP简单,最起码结构简单,TP看着头大
闪闪闪 2016-04-26 14:23:00
bin/ztcli目录在哪里呢?
1/1
发表评论
评论通过审核后显示。