php框架

 首页 > php框架 > ThinkPHP > ThinkPHP类文件自动加载机制 - Thinkphp

ThinkPHP类文件自动加载机制 - Thinkphp

分享到:
【字体:
导读:
          默认的ThinkPHP将调用function __autoload()来查找相应的类文件,或者可以通过define( APP_AUTOLOAD_REG ,1)来调用spl_autoload_register(array( Think , autoload ));...

ThinkPHP类文件自动加载机制

默认的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中匹配该文件并不是去遍历搜索路径目录区匹配,而是直接定位.

分享到:
thinkphp生成静态页函数 - Thinkphp
thinkphp生成静态页函数 1、在入口文件index.php文件中定义生成静态页面的文件位置 define('HTML_PATH','./htm'); 2、在根目录的config文件夹中的config.php配置静态页面的类型,设为 html 'HTML_FILE_SUFFIX'      => '.html',// 默认静态文...
thinkphp邮件发送 - Thinkphp
thinkphp邮件发送 PHP是自带可以发送邮件的Mail()函数的,但需要在php.ini配置,本文将介绍一种简单的通过PHPMailer发送邮件的方法. 而PHPMailer是一个用于发送电子邮件的PHP函数包,它可以使用SMTP的方法通过163、QQ邮箱等第三方服务器发送邮件,这样还有一个好处,就是这些大型邮箱发出的邮件...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……