ThinkPHP之import方法实例详解

时间:2019-07-13 16:37来源:计算机教程
参数说明: 参数 说明 class 必须,表示要导入的类库,采用命名空间的方式。 baseUrl  可选,表示导入的基础路径,省略的话系统采用 ThinkPHP系统目录/Vendor目录。 ext 可选,表示导入的

参数说明: 参数 说明
class 必须,表示要导入的类库,采用命名空间的方式。
baseUrl 
可选,表示导入的基础路径,省略的话系统采用 ThinkPHP系统目录/Vendor 目录。
ext 可选,表示导入的类库后缀,默认是 .php 

方式加载的话就会出现错误,导致加载的文件不是ORG/User.Info.class.php 文件,而是ORG/User/Info.class.php 文件,这种情况下,我们可以使用:

第三方类库

扩展类库位于Extend/Library目录下面,这是系统的公共扩展类库目录,目前支持的扩展类库包只有ORG和Com包。

与 import 方法的区别在于,vendor 方法默认的导入路径为 ThinkPHP系统目录/Vendor 目录,默认后缀为 .php 

vendor 方法导入第三方类库例子

导入Rbac和Page类,别名导入方式禁止使用import方法的第二和第三个参数,别名导入方式的效率比命名空间导入方式要高效,缺点是需要预先定义相关别名。
可以为某些需要的类库定义别名,那么无需定义自动加载路径也可以快速的自动加载。

同样对于包含 . 符号的文件,将 . 号用 # 符号代替,或者指定 
ext 参数。
提示

import('类库名', '起始路径', '类库后缀')

但对第三类库,由于不会有此约定,其后缀只能认为是 php 
。为了方便的引入其他框架和系统的类库,ThinkPHP 特意提供了导入第三方类库的功能。第三方类库统一放置在 ThinkPHP系统目录/Vendor 
下面,并且使用 vendor 方法导入。
vendor 方法

require THINK_PATH.'Lib/Util/Array.class.php';

boolen vendor(class, baseUrl, 
ext)

会导入扩展目录下面的第三方类库(分别是Extend/Library/ORG/Util/Image.class.php和Extend/Library/Com/Sina/OAuth.class.php 类库文件),第三方类库包只能支持ORG和Com两种,下面的子目录可以随意添加。

实际上 vendor 方法是调用 import 方法来实现类库导入的,而且 vendor 方法也支持自定义导入路径。但 
ThinkPHP 约定所有第三方框架的类库文件统一放到系统的 Vendor 目录下面,因此实际中尽可能的遵守该约定。

或者要导入当前目录下面的RBAC类库

例如我们要引入 Zend 的 FilterDir.php 文件,我们把文件带目录放到 Vendor 
目录下面,这个时候 Dir 文件的路径就是 VendorZendFilterDir.php 。使用 vendor 
方法导入:

import("MyApp.Action.UserAction");
import("MyApp.Model.InfoModel");

vendor('Zend.Filter.Dir');

@符号表示导入当前项目下面的类库,这种方式也一定程度上方便了项目类库的代码移植,如果项目名称改变或者移动到其它项目下面的时候,写法不需要改变。

另外请格外注意 vendor 
的首字母应该小写(官方手册为大写)

这里所说的非标准类库文件,主要是指位于特殊位置或者非.class.php后缀的类库文件。像导入基类库、扩展类库和项目类库都是基于框架规范的目录下面,如果我们需要导入项目的Common目录下面的MyClass.php文件,则可以采用:

前面使用自动加载或 import 方法导入的类库,ThinkPHP 约定是以 .class.php 
为后缀的,非这类的后缀,需要通过 import 的参数来控制。

就可以导入Dir类库了。
Vendor方法也可以支持和import方法一样的基础路径和文件名后缀参数,例如:

语法:

除了命名空间的导入方式外,import方法还可以支持别名导入,要使用别名导入,首先要定义别名,我们可以在项目配置目录下面增加alias.php 用以定义项目中需要用到的类库别名,例如:


import('MyClass',APP_PATH.'Common','.php');

第三方类库指除了 ThinkPHP 框架、应用项目类库之外的其他类库,一般由第三方系统或产品提供,如 Smarty、Zend 
等系统的类库等。

您可能感兴趣的文章:

vendor 方法的用法和 import 
方法完全一致,只是其默认值略有差别。

imprt方法有一个别名vendor方法,专门用于导入第三方类库,区别在于起始路径和类库后缀默认值不同。

ThinkPHP 的基类库都是以.class.php 为后缀的,这是系统内置的一个约定,当然也可以通过 import 的参数来控制, 为了更加方便引入其他框架和系统的类库, 系统还提供了一个import方法的别名vendor,专门用于导入第三方类库,并且默认的起始目录和类文件后缀有区别。第三方类库位于系统扩展目录下的Vendor 目录, 例如,我们把 Zend 的 FilterDir.php 放到 Vendor 目录下面,这个时候 Dir 文件的路径就是 VendorZendFilterDir.php,我们使用vendor 方法导入只需要使用:

可以支持多级目录,例如:

那么,现在就可以直接使用:

如果没有指定起始导入路径的话,类库包Think、ORG、Com之外的都会被认为是导入项目应用类库,例如:

import('Think.Util.U1.ClassA');
import('Think.Util.U1.A2.ClassB');
import("ORG.User#Info");

表示导入系统目录下面的Lib/Util/Array.class.php 类库文件,相当于我们这样使用

我们来分析下具体的用法:

import("ORG.User.Info");

编辑:计算机教程 本文来源:ThinkPHP之import方法实例详解

关键词: