PHP autoload实现自动加载类
下面是使用autoload机制加载Person类的例子:
代码如下 | 复制代码 |
/* autoload.php */ |
PHP的autoload机制的实现
要在PHP中实现自动加载类,那就要说到一个魔术方法了,__autoload();这是PHP5添加的自动加载类方法。只要定义了该函数,那么如果PHP运行到该类找不到时,就会根据__autoload的规则去寻找。
自己也规划一下,跟set_include_path和get_include_path来配合使用,使自动加载类更完善点,代码飙一下(模仿magento的):
代码如下 | 复制代码 |
$paths[] = BP . DS . ‘app’ . DS . ‘local’; $appPath = implode(PS, $paths); |
这样就可以为PHP添加默认的类加载环境,这里只是把路径添加到了PHP环境,如果还要继续添加规则,可以再定义__autoload函数,不过我这里是对象使用的,就换了一种方法:spl_autoload_register方法,下面是自己根据magento的规则,自己弄了一套,其实跟magento差不多。
代码如下 | 复制代码 |
class Autoload { /** public function __construct() { } /* public static function instance() { return self::$_instance; /** /* public function autoload($class) { $classFile = str_replace(‘ ‘, DS, ucwords(str_replace(‘_’, ‘ ‘, $class))); } |
推荐阅读
-
PHP autoload实现自动加载类
-
算法 - 如何用PHP实现下面的需求(选择题选项随机变化,评论自动调整)
-
php实现的一个很好用HTML解析器类可用于采集数据_PHP
-
php mailer类调用远程SMTP服务器发送邮件实现方法,mailersmtp
-
php实现parent调用父类的构造方法与被覆写的方法_PHP教程
-
Laravel实现构造函数自动依赖注入的方法,laravel构造函数_PHP教程
-
php自动加载类 __autoload()函数
-
php实现的Captcha验证码类实例,captcha验证码
-
CodeIgniter配置之autoload.php自动加载用法分析_PHP
-
php实现Mysql简易操作类,phpmysql