本博客参考<<php7编程实战>>的自动加载
什么是自动加载
在实际项目中,各个类都放在单独的一个文件中,在实际项目的运行过程中需要调用许多类来共同协调,因此每次调用其它类文件都需要使用include或require结构来完成调用,为了减少代码的冗余度,PHP支持自动加载机制以自动调用需要的类文件。
php自动加载需要完成的功能
- 对单个文件的载入:使用require语句
- 调用类时自动执行的自动加载注册函数:spl_autoload_register
- php7对命名空间的支持,在文件路径组合时仅需要使用根路径和命名空间
demo示例
文件结构:
autoload --根目录
–AutoLoad --自动加载
–Test --库文件
autoload_test.php --测试文件
Loader.php代码:
<?php
/*
*实现类的自动加载
* 1.实现对文件的加载
* 2.自动加载函数
* 3.目录的添加
* 4.命名空间的处理
*/
namespace AutoLoad;
class Loader{
private static $dirs=array(); //目录集合
const UNABLE_TO_LOAD = "无法打开类";
private static $registered = 0;
//5.初始化调用
public function __construct($dirs = array())
{
self::init($dirs);
}
//4.注册类自动加载函数
public static function init($dirs = array()