无聊更新了一下一个加载类函数可自动和手动

PHP代码
106 0
<?php
//作用:用于自动调用类实例化文件或者手动引入加载

function load($className){

//获取全局配置信息变量
global $config;

//检查类名称是否为字母
if (STR(str_replace('\\','', $className)) == false){

//写入日志
  XLOG($className."类名不符合规则(引入)");
  
  echo exit($className."类名不符合规则");

}

//判断加载方式是否配置
$xmjz = $config['xmjz'] ?? 'xmhb';

//检查类名称是否为字母
if (STR($xmjz) == false){
    
  echo exit("加载配置信息必须为字符串");

}

//自动加载和手动加载判断
switch ($xmjz)
{
    
//自动
case 'xmzd':

  //替换命名空间中\为/
$className = str_replace('\\','/', $className);

//进行参数过滤
$className= A($className,'xssreplace');

//路径拼接
$lujing = APP_PATH.$className.'.php';

    break;

//手动
case 'xmsd':

//判断自定义配置文件是否存在
if(file_exists(APP_PATH.'config/class.php')){

//自定义配置信息文件
$classpz = include_once APP_PATH.'config/class.php';

//替换命名空间中\为/
$className = str_replace('\\','/', $className);

$nameclass = $classpz[$className] ?? null;

if ($nameclass == null){
    
echo exit("没有找到手动加载类");

}

//进行参数过滤
$className= A($nameclass,'xssreplace');

//路径拼接
$lujing = APP_PATH.$nameclass.'.php';


}else{

echo exit('手动加载配置文件不存在'); 

}

    break;

//自动和手动
default:
//判断自定义配置文件是否存在
if(file_exists(APP_PATH.'config/class.php')){

//自定义配置信息文件
$classpz = include_once APP_PATH.'config/class.php';

//替换命名空间中\为/
$className = str_replace('\\','/', $className);

$nameclass = $classpz[$className] ?? null;

if ($nameclass == null){
    
echo exit("没有找到手动加载类");

}

//进行参数过滤
$className= A($nameclass,'xssreplace');

//路径拼接
$lujing = APP_PATH.$classpz[$className].'.php';


}else{

//替换命名空间中\为/
$className = str_replace('\\','/', $className);

//进行参数过滤
$className= A($className,'xssreplace');

//路径拼接
$lujing = APP_PATH.$className.'.php';

}    
 
    
}


//判断文件是否存在
if(!file_exists($lujing)){

//写入日志
  XLOG($className."类文件不存在(引入)");

     echo exit($className."类文件不存在");
     
}

  //引入文件
  include_once _include($lujing);
  
}

spl_autoload_register('load');
最后更新 2022-04-26
评论 ( 0 )
OωO
隐私评论