TP在APP_DEBUG=false的情況下,CLI和WEBSITE會共用同一個~runtimephp導致出錯的問題解決辦法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了TP在APP_DEBUG=false的情況下,CLI和WEBSITE會共用同一個~runtimephp導致出錯的問題解決辦法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1636字,纯文字阅读大概需要3分钟。
内容图文
![TP在APP_DEBUG=false的情況下,CLI和WEBSITE會共用同一個~runtimephp導致出錯的問題解決辦法](/upload/InfoBanner/zyjiaocheng/157/12a58b3eadbc403dbbea604cbcba42e7.jpg)
define('APP_DEBUG',false);
會生成./Runtime/~runtime.php 緩存文件,以後每次調用都會用這個文件來處理
但是若一個項目又使用了CLI,CLI生成的./Runtime/~runtime.php 文件跟website是同一個文件,而且cli生成的./Runtime/~runtime.php文件少了一些定義,例如__ROOT__
if(!IS_CLI) { // 当前文件名 if(!defined('_PHP_FILE_')) { if(IS_CGI) { //CGI/FASTCGI模式下 $_temp = explode('.php',$_SERVER['PHP_SELF']); define('_PHP_FILE_', rtrim(str_replace($_SERVER['HTTP_HOST'],'',$_temp[0].'.php'),'/')); }else { define('_PHP_FILE_', rtrim($_SERVER['SCRIPT_NAME'],'/')); } } if(!defined('__ROOT__')) { // 网站URL根目录 if( strtoupper(APP_NAME) == strtoupper(basename(dirname(_PHP_FILE_))) ) { $_root = dirname(dirname(_PHP_FILE_)); }else { $_root = dirname(_PHP_FILE_); } define('__ROOT__', (($_root=='/' || $_root=='\\')?'':$_root)); } //支持的URL模式 define('URL_COMMON', 0); //普通模式 define('URL_PATHINFO', 1); //PATHINFO模式 define('URL_REWRITE', 2); //REWRITE模式 define('URL_COMPAT', 3); // 兼容模式 }
第一個解決辦法,將IS_CLI改成0
define('IS_CLI',PHP_SAPI=='cli'? 1 : 0);
改成
define('IS_CLI',0);
但是問題並沒有解決,雖然生成了defined('__ROOT__'),但是在CLI下生成的
__ROOT__ = .;
而website模式下生成的__ROOT__ = "";
兩者的_PHP_FILE_也不同。雖然code相同。
因此這個方案是不行的。
第二個解決辦法,cli和website使用2個不同的runtime cache文件
在入口文件index.php 添加判斷
$is_cli = PHP_SAPI=='cli' ? 1 : 0; if (!APP_DEBUG && $is_cli) { define('RUNTIME_FILE','./Runtime/~runtime_cli.php'); }
這樣在不同模式下使用各自的runtime文件,不會導致衝突。完美解決!
以上就介绍了TP在APP_DEBUG=false的情況下,CLI和WEBSITE會共用同一個~runtimephp導致出錯的問題解決辦法,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
内容总结
以上是互联网集市为您收集整理的TP在APP_DEBUG=false的情況下,CLI和WEBSITE會共用同一個~runtimephp導致出錯的問題解決辦法全部内容,希望文章能够帮你解决TP在APP_DEBUG=false的情況下,CLI和WEBSITE會共用同一個~runtimephp導致出錯的問題解決辦法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。