加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

PHP框架自动加载类文件道理详解

发布时间:2021-01-21 20:41:04 所属栏目:编程 来源:网络整理
导读:描写: 公司项目PHP用作中间转发层(吸取http哀求,用 socket跟c++做通讯),因为代码没有效到框架,这些对象天然就是之前的人本身写的。最近必要对这个底层举办优化,于是便看了下这部门的代码。 目标: 这块代码的首要浸染是把主目次下的全部插件类一次性

描写:

公司项目PHP用作中间转发层(吸取http哀求,用 socket跟c++做通讯),因为代码没有效到框架,这些对象天然就是之前的人本身写的。最近必要对这个底层举办优化,于是便看了下这部门的代码。

目标:

这块代码的首要浸染是把主目次下的全部插件类一次性所有加载进来。当行使尚未被界说的类(class)和接口(interface)时自动去加载。通过注册自动加载器,剧本引擎在 PHP 堕落失败前有了最后一个机遇加载所需的类。

实现要领:

首要用到PHP函数__autoload()

具体:

/*
获得根路径
/
function _getRootPath($classname)
{
$pearpath=$_SERVER["PHP_PEAR_PATH"].'/';
$libpath=$_SERVER['Root_Path'] . '/lib/';
$libspath=$_SERVER['Root_Path'] . '/libs/';

if(strpos($classname,'Zend')===0) return $pearpath; ///zend 框架路径
if(strpos($classname,'DB
')===0 || strpos($classname,'Interface')===0 || strpos($classname,'Others')===0 || strpos($classname,'Pay')===0 || strpos($classname,'PHPMailer')===0 ) return $libspath;
return $libpath;
}

个中_getRootPath($classname)函数获取的是类名文件地址的真实目次,按照类名的头字段判定类在哪个目次下;

假如类能在这些目次下找到,类在行使前就会被加载。

以上就是本文的所有内容,但愿对各人的进修有所辅佐,也但愿各人多多支持编程之家。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读