💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
初始化主要是使用了`init.php`类 代码如下: ~~~ <?php //初始化类 //判断当前请求是否正常,如果不是通过index.php进行访问的,就退出系统 if(!defined('ACCESS')) die('Hacking'); //实现初始化类 class Init{ //浏览器显示的字符集 private static function initHeader(){ //uft-8字符集 header("Content-type:text/hmtl;charsetset=uft-8"); } //目录常量 private static function initConst(){ //先找到项目根目录(应用根目录),__DIR__可以找到本文件所在的目录,再通过更目录去定位其他的目录 //根目录下 defined('APP') or define('APP', str_replace('\\', '/', __DIR__)); defined('APP_ADMIN') or define('APP_ADMIN', APP.'/Admin/'); defined('APP_API') or define('APP_API', APP.'/Api/'); defined('APP_CORE') or define('APP_CORE', APP.'/Core/'); defined('APP_CONFIG') or define('APP_CONFIG', APP.'/Config/'); defined('APP_PUBLIC') or define('APP_PUBLIC', APP.'/Public/'); defined('APP_COMMON') or define('APP_COMMON', APP.'/Common/'); defined('APP_LOGS') or define('APP_LOGS', APP.'/Logs/'); //Admin目录下 defined('ADMIN_MODEL') or define('ADMIN_MODEL', APP_ADMIN.'Model/'); defined('ADMIN_VIEW') or define('ADMIN_VIEW', APP_ADMIN.'View/'); defined('ADMIN_CONTROLLER') or define('ADMIN_CONTROLLER', APP_ADMIN.'Controller/'); //Api目录下 defined('API_MODEL') or define('API_MODEL', APP_API.'Model/'); defined('API_VIEW') or define('API_VIEW', APP_API.'View/'); defined('API_CONTROLLER') or define('API_CONTROLLER', APP_API.'Controller/'); defined('EXT') or define('EXT', '.class.php'); defined('MODULE') or define('MODULE', 'Api'); } //加载公共函数 private static function initFunction(){ require_once APP_COMMON.'function.php'; } //自定义处理错误 private static function initError(){ //set_error_handler("error_handler"); } //配置文件加载 private static function initConfig(){ //加载 $config=require_once APP_CONFIG.'config.php'; //全局化配置文件 $GLOBALS['config']=$config; } //使用自定义自动加载 private static function initAutoload(){ if (function_exists('spl_autoload_register')) { require_once APP_CORE.'Autoload'.EXT; spl_autoload_register(array('Autoload', 'AppCore')); spl_autoload_register(array('Autoload', 'ApiController')); spl_autoload_register(array('Autoload', 'ApiModel')); spl_autoload_extensions('.php'); }else{ function __autoload($className){ //return Core::autoload($className); } } } //开启session private static function initSession(){ //修改session机制 } //初始化url /** * */ private static function initUrl(){ //pathinfo模式 //获取网址,取出pathinfo模式下的模块,控制器和方法 $url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]; $path=explode("index.php", $url); $_SESSION['argus']=array(); if((strpos($path[0], "http://")!==false) && $path[1]==""){ //控制器和方法缺省 $controller="Index"; $action="index"; }else if((strpos($path[0], "http://")!==false) && strpos($path[1], "/")==0 && strrpos($path[1], "/")==0 && strlen($path[1])>1){//控制器存在,方法缺省 //获取请求的控制器和方法 $request=explode("/", $path[1]); //一般将类名的首字母大写,方法名小写 $controller=ucfirst(strtolower($request[1])); $action="index"; }else{ //获取请求的控制器和方法 $request=explode("/", $path[1]); //一般将类名的首字母大写,方法名小写 $controller=ucfirst(strtolower($request[1])); $action=strtolower($request[2]); //将传递过来的参数封装到数组中 for($i=0;$i<count($request);$i++){ if($i>2 && $i%2 ==1 ){ $argus[$request[$i]]=$request[$i+1]; } } $_SESSION['argus']=$argus; } //为了局部变量在其他地方可以使用,将之定义为常量 define('CONTROLLER', $controller); define('ACTION', $action); } //将用户请求的控制器和方法分发 private static function initDispatch(){ //创建控制类的对象和调用其相关的方法 $controller=CONTROLLER; //类名 $action=ACTION; //方法名 //构造全类名 $controller .= "Controller"; //这里类文件和类名是一样的 //实例化 $object=new $controller($_SESSION['argus']); //调用方法 $object->$action(); } //初始化方法 public static function run(){ //浏览器显示的字符集 self::initHeader(); //目录常量 self::initConst(); //加载公共函数 self::initFunction(); //系统错误 self::initError(); //配置文件加载 self::initConfig(); //类的自动加载,调用函数自定义spl_autoload_register()文件加载 self::initAutoload(); //开启session self::initSession(); //初始化url,获取当前用户的请求,其实就是执行确定的控制器的确定方法 self::initUrl(); //将用户请的控制器和方法分发 self::initDispatch(); } } ?> ~~~ >[warning]这里的**pathinfo模式暂时不支持传参**,想要可以传参,自己再补充一下,或者将跳转的方式更改为传统模式