thinkphp使用cli模式
发布于: 2015-05-02 16:59分类: php
看到thinkphp有个Mode文件夹,是不同的运行模式,因为工作中,经常使用命令行下执行php文件,比如为某个系统添加后台执行的crontab。如是就想试试搭建cli的模式。
这是Mode下的文件列表截图
为了实现这个功能,我折腾其实花费了不少气力,但是最后发现其实改动很少,需要做的也很少,但是中间的确是一步一步的调试的。
首先在根目录建立一个cli的文件夹,里面放一个index.php文件,代码如下。
<?php define('ROOT_PATH','D:/www/htdocs/wcd/'); define('THINK_PATH',ROOT_PATH.'ThinkPHP/'); define('APP_NAME', 'cli'); # 这个就是上面文件夹叫cli的 define('MODE_NAME','cli');//这个很重要,就是表明这是cli模式 define('APP_PATH','D:/www/htdocs/wcd/cli/'); define('APP_DEBUG', true); # development cache require(THINK_PATH.'ThinkPHP.php'); # entry file
其中路径很重要,貌似我折腾好久的根本原因就是我开始的路劲写的有问题,要用绝对路径。本来是要借用__DIR__,__FILE__,dirname等的函数来实现的,但是为了方便直接写死了。这个目录是我xampp的web目录。
然后在命令行下运行,在cli目录就自动生成好多目录,包括一些缓存存放目录和Lib目录下Action下的例子文件。
IndexAction.class.php文件代码,我稍微租了点修改。
<?php // 本类由系统自动生成,仅供测试用途 class IndexAction extends Action { public function index(){ echo 'hello'; } public function wcd(){ echo 'wcd'; } }
以下是运行结果:主要是 php D:\www\htdocs\wcd\cli\index.php index/wcd这个命令,是命令行的Mode。