Cli 模式下的Thinkphp如何运行。
程序员文章站
2022-05-27 12:16:35
...
工作需要,要对在运行的代码进行整合成Cli 模式运行。
项目是Thinkphp的2.1,然后看手册,说define('MODE_NAME','Cli')。结果没用。一看。2.1中根本没有MODE_NAME,而是define('THINK_MODE','Cli')。但是,还是不行,不管运行什么模块,都调到首页。
在3.0的Thinkphp 下也不行。也跳到首页。
有做过Thinkphp Cli 模式开发的吗?告诉一下怎么做啊。谢谢各位。
php -f /var/www/weibok/index_cli.php Action Funciton
项目是Thinkphp的2.1,然后看手册,说define('MODE_NAME','Cli')。结果没用。一看。2.1中根本没有MODE_NAME,而是define('THINK_MODE','Cli')。但是,还是不行,不管运行什么模块,都调到首页。
在3.0的Thinkphp 下也不行。也跳到首页。
有做过Thinkphp Cli 模式开发的吗?告诉一下怎么做啊。谢谢各位。
回复讨论(解决方案)
13.7.4 命令模式
命令模式用于支持命令行模式下面的PHP应用,需要在入口文件设置:
define('MODE_NAME', 'cli')? // 采用CLI运行模式运行
在命令模式下面,支持两种命令行的参数模式,
一、PATHINFO参数模式(URL_MODEL为1)
在PATHINFO参数模式下面,我们可以这样调用模块和操作
index.php module/action/id/4
二、普通参数模式(URL_MODEL设置为其它)
在普通参数模式下面 ,我们需要这样调用模块和操作
index.php module action id 4
在命令行模式下面,系统会自动把参数转换为GET变量,无论采用哪种命令行参数模式,我们可以直接使用GET变量获取参数,例如,采用下面的方式调用
index.php Info/read/category/2/id/4
在控制器中,我们可以直接获取$_GET['category'](这里传入的是2)和$_GET['id'](这里传入的是4)参数,如果你需要自己解析传入的参数顺序和值,就需要采用原生的系统变量$_SERVER['argv']来获取参数了。
我也遇到过相同的问题,没解决,不知道楼主现在有解决吗
看看哈,能否有帮助
入口文件define('APP_DEBUG',false);试试
我也是碰到了同样的问题,不知道楼主有没有继绝?
推荐阅读