使用ThinkPHP5xcode 9 遇到的坑坑,不知道怎么解决

thinkphp3.2 cli模式的正确使用方法(修改) - ThinkPHP框架
最近要使用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文件
原文出自 兴奋小猪
转载请注明出处
如果文章能帮到你就打赏我一杯咖啡咖啡吧!
积分:1942
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
session("kkk","bbbb");
echo "aaaaaaaaaaaaa";
这样页面没有输出不断处于加载状态.
echo "aaaaaaaaaaaaa";
session("kkk","bbbb");
这样页面输出“aaaaaaaaaaaaa”,然后处于不断加载状态。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
检查一下你的缓存驱动使用的是什么?
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:项目开发过程中发现了很奇怪的问题。
使用tp model save方法某个新添加的字段死活保存不上。但是获取 sql 直接去执行是可以了。很郁闷的一个问题。
当时猜测的 是不是操作错 数据库之类的。后面核实了猜测都没有。在打印m 对象的时候发现了异常。为什么我刚刚添加的字段不在这个对象的fields显示呢。
后来就找了一下 thinkphp的默认配置文件。原来是有DB_FIELDS_CACHE 这个配置的。如果不开启deBug 默认情况下是 true 主要做的操作就是第一次访问数据库对象时获取所有表字段缓存到 Runtime\Data\_fields 下面的 对应表文件中。基本上这个文件是永久不更新了。调用save也直接根据缓存的字段信息 去看哪些缓存字段更新。
后来把这个文件给删除了。然后就更新那个字段成功了。不清楚这个配置优势在哪里。说的是减少数据库i/o。莫非每次操作都要获取一下表的结构。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:127829次
积分:3430
积分:3430
排名:第10482名
原创:213篇
转载:17篇
(4)(2)(4)(5)(4)(1)(4)(11)(2)(7)(12)(8)(19)(9)(7)(8)(5)(12)(112)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'}

我要回帖

更多关于 vue2.0遇到的坑 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信