一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

ThinkPHP怎样自动加载类库

时间:2016-03-28 编辑:简简单单 来源:一聚教程网

如下几种情况,ThinkPHP会自动加载:

系统核心文件,如系统基类下的 Think.Core 等文件定义了别名的类库

当前项目的 Action 类和 Model自动搜索路径下面的类库

利用 ThinkPHP 的自动加载功能,可以自动加载自己常用的类库,而无需使用 import

方法手动导入。上述四种自动加载机制中,可以利用的为第二种(定义别名)和第四种(定义自动搜索路径)。

定义类库别名自动加载

系统默认的别名定义文件位于

ThinkPHP系统目录/Common/alias.php ,为便于项目移植,可以在项目的公共文件 common.php 内添加自定义别名:

alias_import(array(

'myClass'=> LIB_PATH.'/Common/myClass.class.php',

// 更多别名

)

);

这样当我们在系统中实例化一个对象时:

$p = new

myClass();

系统便会自动加载 Lib/Common/myClass.class.php ,而无需再使用 import方法手工导入。

定义类库自动搜索路径自动加载,可以通过配置 APP_AUTOLOAD_PATH参数(自动加载路径)来实现所需类库的自动加载。在系统默认配置文件 convention.php 中,APP_AUTOLOAD_PATH配置如下:

'APP_AUTOLOAD_PATH' => 'Think.Util.',

因此我们在模块操作使用Think/Util 下的工具类时,系统才会自动加载而无需额外 import 导入。如果希望再自动加载扩展类库 ORG/Util下的文件,可以增加配置自动加载的路径:'APP_AUTOLOAD_PATH'=>

'Think.Util.,ORG.Util.',

如果需要加载自定义的类库时,为便于项目移植,可以在项目配置文件Config/config.php 中定义该 APP_AUTOLOAD_PATH 参数以覆盖默认配置:

'APP_AUTOLOAD_PATH'

=> 'Think.Util.,ORG.Util.,@.Common.',

这样,当使用到了系统 Think/Util、ORG/Util以及当前项目 Lib/Common 下的类库时,系统便会自动加载而无需手动 import 导入。APP_AUTOLOAD_PATH配置多个搜索路径之间用逗号分割,并且注意定义的顺序代表了搜索的顺序。

定义别名和自动搜索路径都可以实现类库的自动加载,区别是前者需要为没一个类库文件单独定义,而后者直接定义目录搜索目录下所有类文件。

需要注意的是,自动加载的类库文件命名必须是以.class.php 为后缀的。


热门栏目