怎样封装一个自己的mvc框架(五)
?
這一節 我們的框架需要完善一項功能,
那就是日志功能,通過查看日志我們可以查看之前操作的控制器!
首先我們需要創建一個日志類
需要有一下幾個步驟
?? ? * 1.確定日志存儲方式
?? ? *
?? ? * 2.寫日志
<?PHP?
namespace core\lib;
use core\lib\config;
class log?
{
?? ?static $class;
?? ?/**
?? ? * 1.確定日志存儲方式
?? ? *
?? ? * 2.寫日志
?? ? */
?? ?static public function init()
?? ?{
?? ??? ?//確定存儲方式
?? ??? ?$drive = config::get('DRIVE','log');
?? ??? ?//存儲方式路徑
?? ??? ?$classpath= '\core\lib\drive\log\\'.$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 core\lib\drive\log;
use core\lib\config;
//文件系統
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);
?? ?}
?
?
最后在我我們的核心文件中引入日志類
//初始化日志存儲方式
\core\lib\log::init();
?
//調用日志存儲方式
\core\lib\log::log("control:".$control."????? "."antion:".$action);
然后運行框架出現日志文件,運行成功!!
?
轉載于:https://www.cnblogs.com/quanzhiguo/p/7363386.html
總結
以上是生活随笔為你收集整理的怎样封装一个自己的mvc框架(五)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BZOJ1084 [SCOI2005]最
- 下一篇: lintcode-415-有效回文串