最近要使用thinkphp3.2版本的cli模式,手动执的话没有问题,比如php /www/index.php home/article/get 这样没有问题,但是一般用cli模式都是定时任务比较多,这个时候写到定时任务的时候,比如 0 * * * * * php /www/index.php home/article/get 这样就会出现引入ThinkPHP.php失败的问题,这个问题算是比较容易解决的,但是后来还有其他各种报错,经过查看相关核心代码,终于找到无需修改代码,就可以轻易使用cli模式的方法。

步骤如下:
1、官方下载的框架文件里面的index.php文件引入其他文件使用的是相对路径,这导致了定时执行的时候引入ThinkPHP.php文件不存在的问题,修改成绝对路径即可。
define( 'APP_PATH', dirname(__FILE__).'/Application/' );
require dirname( __FILE__).’/ThinkPHP/ThinkPHP.php';

2、思维要倒回去第半步,刚刚说index.php文件的相对路径跟绝对路径的问题,但是执行cli模式的时候,我们的入口文件要有别于通过web服务访问的index.php文件,比如增加cli模式的入口文件cli.php,内容跟index.php的一样,同时增加一句话
define(‘APP_MODE’,'cli');
定义APP的执行模式。此时,我们有两个入口文件,一个是web服务访问方式的index.php,另一个是cli模式访问的cli.php
3、在路径 /ThinkPHP/Mode 下面有个文件,名字叫做common.php ,复制一份出来,命名为cli.php,然后把里面引入日志类的代码注释或者删除掉
'Think\Log' => CORE_PATH . ‘Log'.EXT,

4、删除缓存下面的所有缓存——记得是所有

5、再啰嗦一句,以后cli模式调用的时候,就用cli.php入口文件,比如定时任务 0 * * * * php /www/cli.php home/article/get ,如果是web服务访问,则依然使用index.php文件

原文出自 兴奋小猪 http://www.xingfenxiaozhu.com/2015/11/14/thinkphp-3-2的cli模式(命令行模式)的正确使用方法/ 转载请注明出处
如果文章能帮到你就打赏我一杯咖啡咖啡吧!

入口cli.php文件:



Think\Model\cli.php文件:

执行脚本:

php D:/www/WEB_CPS/cli.php admin/console/update_point

tp3.2.3 命令模式相关推荐

  1. JAVA设计模式之命令模式

    将请求封装成一个对象,从而使你可以用不同的请求对客户进行参数化:对起那个请求进行排队或记录请求日志. 命令模式告诉我们可以为一个操作生成一个对象并给出它的一个execute(执行)方法. Comman ...

  2. 设计模式笔记之十四 (命令模式)

    命令模式 命令模式是一种比较容易理解的设计模式,顾名思义,就是调用者发一个命令,有人给做完就行了,无关乎怎么做,也无关乎谁做. 我们继续我们以往的方式:理论联系实践的方式来理解命令模式. 最近我们实验 ...

  3. 关于IssueVision命令模式中对象生命周期的困惑

    在IssueVision的命令模式中有如下代码(\Patterns\Commander.cs)   public static void Connect(ToolBarButton button, C ...

  4. 设计模式之命令模式(Command)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  5. 行为型模式:命令模式

    LieBrother原文: 行为型模式:命令模式 十一大行为型模式之三:命令模式. 简介 姓名 :命令模式 英文名 :Command Pattern 价值观 :军令如山 个人介绍 : Encapsul ...

  6. Python设计模式-命令模式

    Python设计模式-命令模式 代码基于3.5.2,代码如下; #coding:utf-8 #命令模式class barbecuer():def bakeButton(self):print(&quo ...

  7. 16、设计模式-行为型模式-命令模式

    命令模式(请求发送者与接收者解耦) 在软件开发中,我们经常需要向某些对象发送请求(调用其中的某个或某些方法),但是并 不知道请求的接收者是谁,也不知道被请求的操作是哪个,此时,我们特别希望能够以一种 ...

  8. plsql执行command命令控制台出现乱码_设计模式系列 — 命令模式

    点赞再看,养成习惯,公众号搜一搜[一角钱技术]关注更多原创技术文章.本文 GitHub org_hejianhui/JavaStudy 已收录,有我的系列文章. 前言 23种设计模式速记 单例(sin ...

  9. 设计模式之命令模式、举例分析、通俗易懂

    1. 定义 命令模式(Command):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作 简单来说,就是类似于消费者-服务员-厨师,消费 ...

  10. 23Command(命令)模式

    技术交流QQ群:1027579432,欢迎你的加入! 1.行为变化模式 在组件的构建过程中,组件行为的变化经常会导致组件本身剧烈的变化.行为变化模式将组件的行为和组件本身进行解耦,从而支持组件行为的变 ...

最新文章

  1. 金山WPS发布了Linux WPS Office
  2. 话里话外:项目部如何不再形同虚设
  3. JavaSE(九)——正则表达式、Date类、集合、泛型
  4. python使用率_Python获取CPU、内存使用率以及网络使用状态代码
  5. SaaS CRM系统存在的五大安全漏洞
  6. nginx反向代理获取用户真实ip
  7. 【Android】命令行jarsigner签字和解决找不到证书链错误
  8. SQL:pgsql查询一段时间内每个小时的首条数据,为空返回0
  9. 《世界是数字的 》的读后感
  10. 安卓商城 php后台,洛克商城APP 开源商城安卓源码 含前端和后台
  11. Win7上USB转串口芯片ch341驱动安装方法
  12. android手机平板如何使用usb有线网卡
  13. 中秋佳节│以码为笔,绘合家团圆
  14. 2022施工员-土建方向-通用基础(施工员)理论题库模拟考试平台操作
  15. 热门Java开发工具IDEA入门指南——了解并学习IDE
  16. 小飞鱼通达二开 小飞鱼OA开发案例集锦目录(持续更新)
  17. zxing换行_让文字自动换行
  18. 学妹教你并发编程的三大特性:原子性、可见性、有序性
  19. [Error]新用户第一次启动APP时网络请求失败
  20. Ubuntu 安装MTP驱动访问安卓设备(转载)

热门文章

  1. 【晒出你的第83行代码】跬步千里,十二年的老代码更是技术的沉淀!
  2. 理解[].forEach.call()
  3. 黄聪:PHP 防护XSS,SQL,代码执行,文件包含等多种高危漏洞
  4. Eclipse Package Explorer视图无法打开
  5. OpenCV】透视变换 Perspective Transformation(续)
  6. centos linux 使用无线网卡,CentOS环境下安装无线网卡
  7. Linux链表list_head/hlist_head/hlist_nulls_head的并发性
  8. FreeSwitch中的会议功能
  9. 通讯(transport)
  10. 用glew,glfw实现opengl绘制3D学习笔记1-实现一个窗口