Codeigniter:从自定义lib获取自定义配置文件?

时间:2013-02-28 14:18:42

标签: php codeigniter frameworks

我正在扩展具有更好阈值级别的CodeIgniters核心库(Log)以及邮寄严重错误的方法。但由于某种原因,我无法从我的库中读取配置文件。如果我无法访问我的配置....我无法收到邮件的电子邮件地址。我究竟做错了什么?我收到的消息是:“致命错误:类'CI_Controller'未找到...”

到目前为止,这是我的代码:

class MY_Log extends CI_Log {
/**
 * Constructor
 *
 * @access  public
 */
function MY_Log()
{
    parent::__construct();
    $this->_levels  = array('ERROR' => '1', 'INFO' => '2',  'DEBUG' => '3', 'ALL' => '4');
}

/**
 * Write Log File
 *
 * Calls the native write_log() method and then sends an email if a log message was generated.
 *
 * @access  public
 * @param   string  the error level
 * @param   string  the error message
 * @param   bool    whether the error is a native PHP error
 * @return  bool
 */
function write_log($level = 'error', $msg, $php_error = FALSE)
{
    $result = parent::write_log($level, $msg, $php_error);

    $this->ci =& get_instance();
    $this->ci->load->config('myconf/mailconf');
    echo $this->ci->config->item('emails');
}
}

1 个答案:

答案 0 :(得分:1)

我认为这是因为此类(Log / MY_Log)在应用程序生命周期中过早加载而get_instance()不可用。

也许不是扩展日志记录功能的构建,而是编写自己的类来处理这样的日志记录(如果你这样做,你可以把它包起来并以spark :)的形式发布它。)

另外,您可以使用composer package为您提供所需的功能,因为我确信已存在的功能。

如果您不熟悉作曲家,我建议您阅读Phil Sturgeon's article