接下来我们要做的就是没一个框架必备的日志类。
首先我们现在lib目录下新建一个log.php文件,然后创建log类,我们先来定义一个初始化的方法 init,我们需要把所有驱动信息放到lib下的drive文件夹中,然后在里面在进行建立log文件夹,在里面创建file.php,这代表的是我们的日志存在文件中,在建立一个mysql.php代表的是我们的日志可能存在mysql数据库中。接下来我们还需要一个配置文件,来保存我们当前框架是用的哪一种日志的驱动。在cofig里面创建log.php 。在里面写入 ,
<?php
return array(
'DRIVE'=>'file',
'OPTION'=>array(
'PATH'=>MVC.'/log/'
)
);
接下来我们回到lib下的log里面的init方法进行编码,我们要通过配置文件加载过来日志类型,然后我们要加载我们的这个类,然后我们去imooc.php里写行代码去启动这个类。
\core\lib\log::init();
然后再lib下的log里面继续写一个方法,
static public function log($name)
{
self::$class->log($name);
}
然后我们在imooc.php中调用这个方法,就可以试试是否可以加载到,
\core\lib\log::log('test');
接下来我们在drive/log下的file文件中来进行我们的配置,首先我们需要一个路径, 我们需要把这些东西写到一个初始化的方法当中去,
<?php
namespace core\lib\drive\log;
use core\lib\conf;
class file
{
public $path;
public function __construct(){
$conf = conf::get('OPTION','log');
$this->path = $conf['PATH'];
}
}
接下来我们来完成我们一个写日志的功能,首先我们得确定一下文件的存储位置是否存在,不存在的话我们新建一个目录,存在的话我们写入日志。
public function log($message,$file='log')
{
//p($this->path);
if(!is_dir($this->path)){
mkdir($this->path,'0777',true);
}
$message = date('Y-m-d H:i:s').$message;
return file_put_contents($this->path.$file.'.php',json_encode($message));
}
然后我们的日志类功能就结束了。