Codeigniter 代码点火器:使用load_类
我正在编写自己的日志类以将数据保存在数据库中。当我查看CI的工作方式时,我注意到有一个处理日志记录的Codeigniter 代码点火器:使用load_类,codeigniter,logging,Codeigniter,Logging,我正在编写自己的日志类以将数据保存在数据库中。当我查看CI的工作方式时,我注意到有一个处理日志记录的log\u message()函数。有一个load\u类功能我无法分配给CI用户指南中的任何内容 1他们为什么要把它放在一个额外的功能中 2从何处加载此函数文件 希望有一些CI人员如何回答:-)简短回答: 您可以编写自己的日志类以覆盖默认CI类: <?php // this file is /application/libraries/MY_Log.php class MY_Log exte
log\u message()
函数。有一个load\u类
功能我无法分配给CI用户指南中的任何内容
1他们为什么要把它放在一个额外的功能中
2从何处加载此函数文件
希望有一些CI人员如何回答:-)简短回答: 您可以编写自己的日志类以覆盖默认CI类:
<?php
// this file is /application/libraries/MY_Log.php
class MY_Log extends CI_Log {
public function write_log($level = 'error', $msg, $php_error = FALSE)
{
// Put your own logging function in here.
// If you want it to still log to a file as usual, use this:
parent::write_log($level, $msg, $php_error);
}
}
这将按顺序运行以下检查:
/system/libraries
文件夹中的“Log.php”文件/application/libraries
中的“MY_Log.php”文件(或配置中设置的任何子类前缀)/system
文件夹),但在/application
下确实有一个扩展类,那么也加载该类load\u class()
函数,因为它允许相当无缝的扩展。然而,知道它是如何工作的是件好事
因此,要重写一个类,首先要找到原始类所在的位置(通常是
/system/libraries
或/system/core
)。将扩展文件放在相应的/application
文件夹中(这很重要!如果在/system/core
下,则扩展必须在/application/core
下)。在文件名和类名前面加上MY
(或您在配置中设置的任何内容),并让它扩展CI
基类。谢谢您的简短回答。非常感谢你的长篇大论!我想CI人不会让我们用它的?!为什么不在用户指南中?不管怎样,现在我知道如何扩展日志文件了。这比构建一个新的库文件要好得多。
$_log =& load_class('Log');
$_log->write_log($level, $message, $php_error);