【问题标题】:Error in log file when using MY_Log to extend CI_Log使用 MY_Log 扩展 CI_Log 时日志文件出错
【发布时间】:2013-03-28 13:00:43
【问题描述】:

当我尝试加载 MY_Log 时,我的应用程序日志文件中出现以下错误。

错误 - 26-03-2013 22:52:20—> 严重性:警告 —> include_once(application/core/MY_Log.php) [function.include-once]:无法打开流:没有这样文件或目录 C:\dev\mysite\application\config\config.php 377

我的自动加载文件有以下内容:

$autoload['libraries'] = array('parser', 'session', 'log'); 

MY_Log 类在 application/libraries/MY_Log.php 中定义

class MY_Log extends CI_Log 

位于 application/libraries/MY_Parser.php 中的 MY_Parser 类可以正常加载。

class MY_Parser extends CI_Parser 

当我调试加载器以查看为什么 Parser 的行为与 Log 不同时,它似乎在应用程序/核心中查找 MY_Log,但在应用程序/库中查找(并找到)MY_Parser ok。

我正在使用 CI 2.1.1

任何想法为什么会出现这种差异?

【问题讨论】:

  • 看到指定的配置文件中没有应该加载库的内容,我将假设您添加了某种自动加载器,并且它导致了问题。如果这是真的,请发布它的代码。
  • 你能把你的 application\config\config.php 第 377 行的内容贴出来吗?您的错误消息表明其中有一个 include_once。

标签: php codeigniter codeigniter-2


【解决方案1】:

当您扩展CI_Log 这样的核心库时,您不要自动加载它。为什么?因为 CI_Log 是由 CI Core 自动加载的。 CI_Parser(不熟悉这个)不是核心库,所以它从application/libraries 加载。

只是不要将它包含在您的自动加载数组()中

另外,请考虑更新您的 CI 版本(如果您还没有)以利用最新的安全补丁/修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多