首页 / PHP / PHPAutoload自动加载类
PHPAutoload自动加载类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHPAutoload自动加载类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2073字,纯文字阅读大概需要3分钟。
内容图文
我们知道PHP可以实现自动加载,避免了繁重的体力活,代码更规范,整洁。那如果我们把这个自动加载再升华一下,变成自动加载类,每次只需要引入这个类,那么其他类就自动加载了。同时如果加载后可以使其常驻内存,那么效率又高了。。。关于自动的基础部分在前一篇博客();
下面有几点需要注意
1.为了实现通用性,设置一个根目录,在大型项目中,目录结构比较复杂,每次加载都应该有一个起始开始的目录位置,这样才能向后兼容。当然也可以设置多个这种目录,放到数组里。
2.带有命名空间的类,需要把转义符转换成表示目录结构的斜线,加载的类是带有命名空间的,因为,该类是属于该命名空间下。(从上一篇博客就可以知道)
好了,下面贴上代码
1 <?php 2 3 if(!defined('ROOTDIR')) 4 { 5 define('ROOTDIR',realpath(__DIR__.'/../')); //定义更目录 6 } 7 class Autoloader { 8 9 public function myAutoload( $name )10 {11 $class_path = str_replace('\\',DIRECTORY_SAPARATOR,$name);12 $file = ROOTDIR.'/'.$class_path.'.php';13 if( file_exists( $file ) )14 {15 require_once( $file );16 if( class_exists($name, false) )17 {18 return true;19 }20 }21 return false;22 }23 }24 spl_autoload_register('Autoloader::myAutoload');
自动加载的使用必须显示加载,它是加载其他类的加载器,我们已经重载了PHP的自动加载没有机制可以加载这个Autoloader,所以要 require_once('Autoloader.php');
很简单吧,其实这个可以做的更强大。
比如,我把这个做成一个中间件,命名为Bootstrap,这个可以用于不同项目,而这些项目可以位于不同或者同一个WEB目录下,这时需要一个静态的属性表示所有可能的应用目录或者不同WEB目录
1 public static $rootPath = array();
在加载时,就需要一个循环遍历每一个可能的目录,找到即加载。
同时,我们可以设置一个 setRootPath() 方法,用于设置不同项目的目录。
public function setRootPath( $path ){ //do something return $this;}
这样就能实现链式操作的添加,个人觉得比较神奇。。。
OK,关于自动加载就写到这里,欢迎各位看管拍砖。
内容总结
以上是互联网集市为您收集整理的PHPAutoload自动加载类全部内容,希望文章能够帮你解决PHPAutoload自动加载类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。