MVC框架扩展类

之前我们已经搭建了一个简陋的mvc框架,下面我们来提高一下框架的健壮性,

首先,看一下我们之前写的路由类;一些默认的配置都是些在文件中的,我们可以封装一个配置类来替换这些值,这样我们修改配置的时候就不用单独在文件中修改了;

  $this->action = <span style="color:#FF0000;"></span><span style="color:#FF0000;">'index.html'</span>
    ①新建一个配置目录config;用来储存我们的配置文件;

    ②在config目录下新建route.php文件,用来储存路由默认配置

<?php
return array(
    'CTRL'=>'index',<span style="color:#FF0000;">//控制器默认为index</span>
    'ACTION'=>'index'<span style="color:#FF0000;">//默认动作也是index</span>
);

    ③在lib目录下新建配置处理配置文件conf.php

<?php
namespace   core\lib;

class conf
{
    static public $conf=array();<span style="color:#FF0000;">//新建一个静态数组,用于储存配置</span>
    //static public $cona=array();
    static public function get($name,$file)<span style="color:#FF0000;">//这里有两个参数;</span><span style="color:#FF0000;">name是配置的名称,file是配置的值;</span>
    {<span id="transmark" style="display: none; width: 0px; height: 0px;"></span>
       <span style="color:#FF0000;"> /*  完成思路
         * 1,判断配置文件是否存在
         * 2判断配置是否存在
         * 3缓存配置
         */</span>
        //p(self::$conf[$file]);
        if(isset(self::$conf[$file])){<span style="color:#FF0000;">//为了不重复储存,我们先要判断一下是否存在这个配置的缓存</span>
            //p(self::$conf[$file]);exit;
            return self::$conf[$file];
        }else{
            //p(1);
            $path = IMOOC.'\core\config\\'.$file.'.php';<span style="color:#FF0000;">//第一步:</span>首先获取配置文件路径,
            //p($file);exit(); 
            if(is_file($path)){<span style="color:#FF0000;">//第二步:</span>判断配置文件是否存在
                $conf=include $path;<span style="color:#FF0000;">//第三步:</span>引用配置文件,将文件放入缓存中后返回配置;
                //p($file);p($name);p($conf[$name]);exit();
                if(isset($conf[$name])){
                    self::$conf[$file]=$conf;
                    return $conf[$name];
                }else{
                    throw new \Exception('没有这个配置项'.$name);<span style="color:#FF0000;">//如果没有这个配置项就抛出一个异常;</span>
                }
            }else{
                throw new \Exception('找不到配置文件',$file);<pre name="code" class="php"><span style="color:#FF0000;">//如果没有这个配置文件就抛出问题;</span>
} } }}?>


 ④验证方法是否可用;

<?php
namespace app\ctrl;
use app\model\cModel;
use app\model\kModel;
use core\lib\model;

class indexCtrl extends \core\imooc
{
    //所有留言
    public function index()
    {
        $temp =  \core\lib\conf::get('CTRL','route');<span style="color:#FF0000;">//调用get方法输出index;就算完成了;</span>
        print_r($temp);
    }
}
这样我们这个配置类就算完成了;哪里需要这个配置直接用get方法提取配置;

因为这个是提取单个配置的;如果遇到数据库配置我们就需要提取有关数据库的所有配置;

步骤和配置单个一样,

①在config目录新建database.php作为数据库配置文件,内容如下;

<?php
return array(
    'database_type' => 'mysql',
    'database_name' => 'kaoshi',
    'server' => 'localhost',
    'username' => 'root',
    'password' => 'root',
    'charset' => 'utf8'
);



?>
②在lib目录下的conf.php文件中搭建方法

static public function all($file)
    {
        /*
         * 1,判断配置文件是否存在
         * 2判断配置是否存在
         * 3缓存配置
         */
        if(isset(self::$conf[$file])){
            return self::$conf[$file];
        }else{
            //p(1);
            $path = IMOOC.'\core\config\\'.$file.'.php';
            //p($path);exit();
            if(is_file($path)){
                $conf=include $path;
                //p($conf);exit();
                if(isset($conf)){
                    self::$conf[$file]=$conf;
                    return $conf;<span style="color:#FF0000;">//直接在这里返回整个文件;这样就可以获得整个配置文件了</span>
                }
            }else{
                throw new \Exception('找不到配置文件',$file);
            }
        }
    }
这样我们的配置类就算完成了:需要调用单个配置用get()方法,get方法有两个参数:第一个为配置名第二个为文件名;调用全部配置用all();all方法只有一个参数,为文件名.


日志类

每个框架运行的时候都需要一个日志类记录文件的活动;日志类和其他类不同的地方就是储存方式需要用数据库或者用本地文件记录还有可能存在与缓存文件中;

所以我们需要先判断一下文件的储存类型;

①在config目录中新建日志文件配置log.php

<?php

//日志类
return array(
    'DRIVE'=>'file',<span style="color:#FF0000;">//日志储存方式</span>
    'OPTION'=>array(<span style="color:#FF0000;">//日志储存位置</span>
        'PATH'=>IMOOC.'/log/',
    ),
);


?>

②在lib目录下新建日志文件log.php;

<?php
namespace  core\lib;
use core\lib\conf;
class log
{
    static $class;
    <span style="color:#FF0000;">/*
     * 1确定日志存储方式
     *
     * 2 写日志
     */</span>
    static public function init()<span style="color:#FF0000;">//第一步:加载类判断文件储存方式</span>
    {
        $drive= conf::get('DRIVE','log');
        $class='\core\lib\drive\log\\'.$drive;<span style="color:#FF0000;">//根据储存方式进入类</span>
        //p($class);
        self::$class = new $class;
    }
    static public function log($name,$file='log')
    {
        self::$class->log($name,$file);
    }
}

?>
③配置file文件

<?php
namespace core\lib\drive\log;
//文件系统
use core\lib\conf;

class file
{
    public $path;#日志存储位置
    public function __construct()
    {
        $this->path = conf::get('OPTION','log');
    }
     public function log($message,$file='log')<span style="color:#FF0000;">//有两个参数第一个为日志内容;第二个为储存文件名</span>
    {
<span style="color:#FF0000;">        </span><pre name="code" class="html"><span style="color:#FF0000;">/*
         * 1确定文件存储位置是否存在
         * 新建目录
         * 2写入日志
         */</span>

//p(is_dir(IMOOC.'/file'));exit; $logpath=IMOOC.'\\'.$this->path; //p($logpath);exit; if(!is_dir($logpath)){//确定文件存储位置是否存在
mkdir($this->path,'0777',true);//新建文件 } //p($message);exit; return file_put_contents($logpath.'\\'.$file.'.php',date('Y-m-d H:i:s').json_encode($message).PHP_EOL,FILE_APPEND);//利用
file_put_contents储存文件,内容转换为json_encode便于储存.
}}?>


④生成文件.

这样我们的日志类就配置成功了;









该数据集通过合成方式模拟了多种发动机在运行过程中的传感器监测数据,旨在构建一个用于机械系统故障检测的基准资源,特别适用于汽车领域的诊断分析。数据按固定时间间隔采集,涵盖了发动机性能指标、异常状态以及工作模式等多维度信息。 时间戳:数据类型为日期时间,记录了每个数据点的采集时刻。序列起始于2024年12月24日10:00,并以5分钟为间隔持续生成,体现了对发动机运行状态的连续监测。 温度(摄氏度):以浮点数形式记录发动机的温度读数。其数值范围通常处于60至120摄氏度之间,反映了发动机在常规工况下的典型温度区间。 转速(转/分钟):以浮点数表示发动机曲轴的旋转速度。该参数在1000至4000转/分钟的范围内随机生成,符合多数发动机在正常运转时的转速特征。 燃油效率(公里/升):浮点型变量,用于衡量发动机的燃料利用效能,即每升燃料所能支持的行驶里程。其取值范围设定在15至30公里/升之间。 振动_X、振动_Y、振动_Z:这三个浮点数列分别记录了发动机在三维空间坐标系中各轴向的振动强度。测量值标准化至0到1的标度,较高的数值通常暗示存在异常振动,可能与潜在的机械故障相关。 扭矩(牛·米):以浮点数表征发动机输出的旋转力矩,数值区间为50至200牛·米,体现了发动机的负载能力。 功率输出(千瓦):浮点型变量,描述发动机单位时间内做功的速率,取值范围为20至100千瓦。 故障状态:整型分类变量,用于标识发动机的异常程度,共分为四个等级:0代表正常状态,1表示轻微故障,2对应中等故障,3指示严重故障。该列作为分类任务的目标变量,支持基于传感器数据预测故障等级。 运行模式:字符串类型变量,描述发动机当前的工作状态,主要包括:怠速(发动机运转但无负载)、巡航(发动机在常规负载下平稳运行)、重载(发动机承受高负荷或高压工况)。 数据集整体包含1000条记录,每条记录对应特定时刻的发动机性能快照。其中故障状态涵盖从正常到严重故障的四级分类,有助于训练模型实现故障预测与诊断。所有数据均为合成生成,旨在模拟真实的发动机性能变化与典型故障场景,所包含的温度、转速、燃油效率、振动、扭矩及功率输出等关键传感指标,均为影响发动机故障判定的重要因素。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值