这一节 我们的框架需要完善一项功能,
那就是日志功能,通过查看日志我们可以查看之前操作的控制器!
首先我们需要创建一个日志类
需要有一下几个步骤
* 1.确定日志存储方式
*
* 2.写日志
<?PHP
namespace corelib;
use corelibconfig;
class log
{
static $class;
/**
* 1.确定日志存储方式
*
* 2.写日志
*/
static public function init()
{
//确定存储方式
$drive = config::get('DRIVE','log');
//存储方式路径
$classpath= 'corelibdrivelog\'.$drive;
self::$class=new $classpath;
}
//调用存储驱动存储日志文件
static public function log($message,$file='log')
{
self::$class->log($message,$file);
}
}
然后在我们的配置文件中,编写日志的配置项目
<?php
return array(
'DRIVE'=>'file',
'OPTION'=>array(
'PATH'=>ROOT."/log//"
)
);
在这里我们需要创建一个日志驱动文件
日志存储方式可以使存储在文件中,也可以存在数据库等里面
所以至少创建两种驱动方式
暂时先不考虑数据库默认文件存储
<?php
namespace corelibdrivelog;
use corelibconfig;
//文件系统
class file
{
public $path ;
//初始化方法
public function __construct()
{
$path=config::get('OPTION','log');
$this->path=$path['PATH'];
}
//创建日志文件
public function log($message,$file='log')
{
/**
* 1.日志存储位置是否存在
*
* 2.写日志
*/
if (!file_exists($this->path.date('YmdH'))) {
mkdir($this->path.date('YmdH'));
}
//换行符PHP_EOL
return file_put_contents($this->path.date('YmdH')."/".$file.".txt", date('Y-m-d H:i:s').json_encode($message).PHP_EOL,FILE_APPEND);
}
最后在我我们的核心文件中引入日志类
//初始化日志存储方式
coreliblog::init();
//调用日志存储方式
coreliblog::log("control:".$control." "."antion:".$action);
然后运行框架出现日志文件,运行成功!!