欢迎光临
我们一直在努力

PHP设计模式-类自动载入

早期PHP都是通过手工include载入相应的类文件,当PHP项目变大时,如果项目需要几十上百个文件时,管理是非常繁杂的。

在PHP5.2之后提供了类的自动载入方式,我们就可以基于此方式自动载入所需要的类文件。

实现如下:

<?php

function __autoload($class){
    require __DIR__.'/'.$class.'.php';
}

Test1::test();
Test2::test();

当我们执行Test类的方法时,检测到没有引入Test1类,因此程序自动执行__autoload()方法,将要调用的类名传入,于是我们可以对应的组装引入地址引入,从而实现自动引入功能。

注意:类名与文件名不同时候,要注意映射关系,调用对应的类文件。

由于项目的增大,不同组建不同的目录,这个时候后多处文件都使用了__autoload方法就会产生冲突。

因此官方在PHP5.3后增加了spl_autoload_register()方法,他的意思就是注册回调一个自定义的引入方法。

<?php

spl_autoload_register('my_autoload_a');

//自定义的引入方法
function my_autoload_a($class){
    require __DIR__.'/'.$class.'.php';
}


Test1::test();
Test2::test();

 

你会发现也是可以的,通过这个你可以自定义多个引入方法。(*^__^*) 嘻嘻

分享到:更多 ()