PHP自动加载类机制
自动加载
在 PHP 开发过程中,如果希望从外部引入一个 class,通常会使用 include 和 require 方法,去把定义这个 class 的文件包含进来;
PHP5 提供了一个类的自动装载 (autoload) 机制。
autoload 机制可以使得 PHP 程序有可能在使用类时才自动包含类文件,
而不是一开始就将所有的类文件 include 进来,这种机制也称为 lazy loading。
1 | function __autoload($className) { |
1 | function __autoload($className) { |
autoload 至少要做三件事情:
根据类名确定类文件名;
确定类文件所在的磁盘路径
在我们的例子是最简单的情况,类与调用它们的 PHP 程序文件在同一个文件夹下;
将类从磁盘文件中加载到系统中。
优点:
- 使用类之前无需 include 或者 require。
- 使用类的时候才会 require/include 文件,实现了 lazy loading,避免了 require/include 多余文件。
- 无需考虑引入类的实际磁盘地址,实现了逻辑和实体文件的分离。
SPL Autoload 具体有几个函数:
spl_autoload_register:注册 _autoload () 函数
spl_autoload_unregister:注销已注册的函数
spl_autoload_functions:返回所有已注册的函数
spl_autoload_call:尝试所有已注册的函数来加载类
spl_autoload :_autoload () 的默认实现
spl_autoload_extionsions: 注册并返回 spl_autoload 函数使用的默认文件扩展名。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Michael's Blog!
评论




