ThinkPHP类文件自动加载机制
发布:smiling 来源: PHP粉丝网 添加日期:2014-04-21 15:05:47 浏览: 评论:0
默认的ThinkPHP将调用function __autoload()来查找相应的类文件,或者可以通过define('APP_AUTOLOAD_REG',1)来调用spl_autoload_register(array('Think', 'autoload'));
但是我看了一下Think::autoload和__autoload函数是一模一样的,所以看不出这两种方式有什么实质的不同.
另外可以通过设置项目配置文件里的APP_AUTOLOAD_PATH参数来添加自定义的加载路径.
1、这里的加载路径是要符合一定规则的,目录之间分隔符用点来替换斜杠.
2、自定义加载路径必须在当前项目的类库目录中,或者ThinkPHP的基类目录中,或者其他项目的类库目录中.
如果开头是@则到当前项目的类库目录中查找,比如@.ORG.Page
如果开头是'think','org','com'之一则到ThinkPHP目录中查找,比如ORG.DB.Db,则会查找ThinkPHP/Lib/ORG/Db/Db.class.php
已经加载过的类文件的类名会存储在一个static数组中,当要加载一个类文件之前会先去判断数组是否该数组中是否存在该类名(包括别名检测),如果没有则加载,否则不加载,如果发现导入了不同的位置下面的同名类库文件,系统会提示冲突.
ThinkPHP虽然不像ThinkPHP中那样自由地定义自动加载规则,但是通过指定“默认查找的加载路径”这样的方法是比较简单而且对于应用来说我认为是足够了,因为很少情况需要去定义一个自动加载规则,另外zend的自动加载机制比较准确,直接定位到目标文件的位置,而ThinkPHP会去每个“自动加载搜索路径”中去匹配是否存在该文件,当然Tp中匹配该文件并不是去遍历搜索路径目录区匹配,而是直接定位.
Tags: ThinkPHP 机制 文件
- 上一篇:thinkphp邮件发送
- 下一篇:thinkphp生成静态页函数
相关文章
- ·ThinkPHP中自定义错误页面和提示页面 (2013-11-15)
- ·ThinkPHP中Ajax返回(2013-11-15)
- ·ThinkPHP中处理表单中注意(2013-11-15)
- ·ThinkPHP中I(),U(),$this->post()等函数(2013-11-15)
- ·ThinkPHP中公共函数路径和配置项路径的映射(2013-11-15)
- ·ThinkPHP中公共配置文件和各自项目中的配置文件组合(2013-11-15)
- ·ThinkPHP在控制器里的javascript代码不能执行解决方法(2013-11-29)
- ·ThinkPHP3.0略缩图不能保存到子目录(2013-12-03)
- ·thinkphp的循环结构(2014-01-10)
- ·thinkphp特殊标签使用(2014-01-10)
- ·thinkphp模板输出汇总(2014-01-10)
- ·thinkphp模板的赋值与替换(2014-01-10)
- ·thinkphp连贯操作(2014-01-10)
- ·thinkphp区间查询、统计查询、SQL直接查询(2014-01-10)
- ·thinkphp的普通查询与表达式查询(2014-01-10)
- ·RBAC类在ThinkPHP中的四种使用方法(2014-01-10)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)