• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

TP在APP_DEBUG=false的情況下,CLI和WEBSITE會共用同一個~runtimephp導致出錯的問題解決辦法

php 搞代码 3年前 (2022-01-23) 19次浏览 已收录 0个评论

TP若使用了

define('APP_DEBUG',false);

會生成./Runtime/~runtime.php 緩存文件,以後每次調用都會用這個文件來處理
但是若一個項目又使用了CLI,CLI生成的./Runtime/~runtime.php 文件跟website是同一個文件,而且cli生成的./Runtime/~runtime.php文件少了一些定義,例如__ROOT__

if(!IS_CLI) {    // 当前文件名    if(!defined('_PHP@本文9来源gao($daima.com搞@代@#码8网^搞代gaodaima码_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教程有兴趣的朋友有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:TP在APP_DEBUG=false的情況下,CLI和WEBSITE會共用同一個~runtimephp導致出錯的問題解決辦法
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址