import方法是ThinkPHP框架用于类库导入的封装实现,尤其对于项目类库、扩展类库和第三方类库的导入支持,import方法早期的版本可以和java的import方法一样导入目录和通配符导入,后来考虑到性能问题,在后续的版本更新中不断改进和简化了,所以现在的用法比较简单明了。调用格式:
import('类库名', '起始路径', '类库后缀')
imprt方法有一个别名vendor方法,专门用于导入第三方类库,区别在于起始路径和类库后缀默认值不同。
我们来分析下具体的用法:
导入系统基类库
系统基类库其实就是指的Think类库包,所在目录就是指框架的核心Lib目录,import方法可以用于导入系统基类库,例如:
import('Think.Util.Array');
表示导入系统目录下面的Lib/Util/Array.class.php 类库文件,相当于我们这样使用
require&">nbsp;THINK_PATH.'Lib/Util/Array.class.php';
可以支持多级目录,例如:
import('Think.Util.U1.ClassA');import('Think.Util.U1.A2.ClassB');
通过import方法导入类库后,就可以进行类库的实例化操作了。
导入扩展类库
扩展类库位于Extend/Library目录下面,这是系统的公共扩展类库目录,目前支持的扩展类库包只有ORG和Com包。
import('ORG.Util.
Image'); import('Com.Sina.OAuth');
会导入扩展目录下面的第三方类库(分别是Extend/Library/ORG/Util/Image.class.php和Extend/Library/Com/Sina/OAuth.class.php 类库文件),第三方类库包只能支持ORG和Com两种,下面的子目录可以随意添加。
导入项目应用类库
如果没有指定起始导入路径的话,类库包Think、ORG、Com之外的都会被认为是导入项目应用类库,例如:
import("MyApp.Action.UserAction"); import("MyApp.Model.InfoModel");
表示导入MyApp项目的UserAction和InfoModel类库文件,由于通常,我们都是导入当前项目下面的类库,所以可以简写成:
import("@.Action.UserAction"); import("@.Model.InfoModel");
@符号表示导入当前项目下面的类库,这种方式也一定程度上方便了项目类库的代码移植,如果项目名称改变或者移动到其它项目下面的时候,写法不需要改变。