php 类自动加载

作者: admin 日期: 2018-06-22 09:33:51 人气: - 评论: 0

php最早是没有class的概念的,文件依赖也是靠程序员自己写require 等来加载依赖的文件,这样有个很大的缺点,就是要程序员自己写冗余的加载文件的代码,而且不太好实现按需加载

后来php有了class概念之后便有了自动加载,其原理就是写一个__autoload 魔术方法当php找不到类的时候就会触发这个方法,然后在这个魔术方法里面再根据一定的规则去require对应的php文件

不过这个也有很大的问题,就是整个项目中只能写一个__autoload 方法了,如果是不同的类库带的__autoload 方法放一起会冲突,

后来php提供了spl_autoload_register 方法可以注册多个__autoload方法到同一个上下文中了,我根据这个实现了一个简单的自动加载器

<?php

function mmxf_03311_autoload($class){

   $class_file_name = dirname(__FILE__).
       "/lib/".str_replace("_","/",$class).
       ".php";

   if(file_exists($class_file_name)){
       require_once ($class_file_name);
   }else{
       die("$class 对应的类文件不存在");
   }

}

spl_autoload_register("mmxf_03311_autoload");



相关内容

发表评论
更多 网友评论0 条评论)
暂无评论

Copyright © 2012-2014 我的代码板 Inc. 保留所有权利。

页面耗时0.0229秒, 内存占用1.83 MB, 访问数据库13次

闽ICP备15009223号-1