一、配置加载类
要想做配置加载类我们要先了解为什么要用到配配置加载类
当我们需要改变某一项配置的时候我们不需要在功能中找到所有的配置进行修改,而是直接在一个单独的配置文件中修改,这样可以更好的优化我们的框架,用起来才会更舒服。
比如说我们的数据库配置
我们可以做一个单独的数据库配置文件放到config文件中
<?php
return array(
'DSN' => 'mysql:host=localhost;dbname=test',
'USERNAME' => 'root',
'PASSWD' => 'root'
)
?>
接下来让我们加载配置文件
public function __construct(){
$database = conf::all('database');
try {
parent::__construct($database['DSN'],$database['USERNAME'],$database['PASSWD']);
} catch (\PDOException $e) {
p($e->getMessage());
}
}
这样的话,我们只需要修改配置文件就可以修改我们的数据库连接岂不是很方便
二、日志类
日志类是所有框架中都必不可少的功能,日志类可能是存在数据库中,也可以存在存在文件中。
在config文件中创建log.php配置文件,里面放上文件的存储方式和存储路径
<?php
return array(
'DRIVE' => 'file',
'OPTION' => array(
'PATH' => LHY.'/log/'
)
);
?>
在lib文件中创建一个log文件,再从log文件中创建一个file.php文件,在file.php文件中实现将日志存入文件
<?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){
$path = $this->path;
// echo $this->path.date('Y-m-d');die;
if(!is_dir($this->path.date('Y-m-d'))){
mkdir($this->path.date('Y-m-d'),0777,true);
}
$message = date('Y-m-d H:i:s').$message;
return file_put_contents($this->path.date('Y-m-d').'/'.$file.'.php',json_encode($message).PHP_EOL,FILE_APPEND);
}
}
?>
在lib文件中创建log.php类文件
<?php
namespace core\lib;
use core\lib\conf;
class log
{
static $class;
/**
* 1.确定日志存储方式
*
* 2.写日志
*/
static public function init(){
//确定存储方式
$drive = conf::get('DRIVE','log');
$class = '\core\lib\drive\log\\'.$drive;
self::$class = new $class;
}
static public function log($message,$file){
//core\lib\drive\log\log;
self::$class->log($message,$file);
}
}
?>
这样就实现了日志类,将日志存入文中