- import('Think.Util.Array');
复制代码
表示导入系统目录下面的Lib/Util/Array.class.php 类库文件,相当于我们这样使用- require THINK_PATH.'Lib/Util/Array.class.php';
复制代码
可以支持多级目录,例如:- import('Think.Util.U1.ClassA');
复制代码
- import('Think.Util.U1.A2.ClassB');
复制代码
通过import方法导入类库后,就可以进行类库的实例化操作了。- import('ORG.Util.Image');
- import('Com.Sina.OAuth');
复制代码
会导入扩展目录下面的第三方类库(分别是Extend/Library/ORG/Util/Image.class.php和Extend/Library/Com/Sina/OAuth.class.php 类库文件),第三方类库包只能支持ORG和Com两种,下面的子目录可以随意添加。- import("MyApp.Action.UserAction");
- import("MyApp.Model.InfoModel");
复制代码
表示导入MyApp项目的UserAction和InfoModel类库文件,由于通常,我们都是导入当前项目下面的类库,所以可以简写成:- import("@.Action.UserAction");
- import("@.Model.InfoModel");
复制代码
@符号表示导入当前项目下面的类库,这种方式也一定程度上方便了项目类库的代码移植,如果项目名称改变或者移动到其它项目下面的时候,写法不需要改变。- import('Common.MyClass',APP_PATH,'.php');
复制代码
或者- import('MyClass',APP_PATH.'Common','.php');
复制代码
或者要导入当前目录下面的RBAC类库- import("RBAC.AccessDecisionManager",dirname(__FILE__),".php");
复制代码
还有一种特殊情况,是类库命名的特殊性。按照系统的规则,import方法是无法导入具有点号的类库文件的,因为点号会直接转化成斜线,例如我们定义了一个名称为User.Info.class.php 的文件的话,采用:- import("ORG.User.Info");
复制代码
方式加载的话就会出现错误,导致加载的文件不是ORG/User.Info.class.php 文件,而是ORG/User/Info.class.php 文件,这种情况下,我们可以使用:- import("ORG.User#Info");
复制代码
来导入。- Vendor('Zend.Filter.Dir');
复制代码
就可以导入Dir类库了。- Vendor('Zend.Filter.Dir',dirname(__FILE__),'.class.php');
复制代码
- return array(
- 'rbac' =>LIB_PATH.'Common/Rbac.class.php',
- 'page' =>LIB_PATH.'Common/Page.class.php',
- );
复制代码
那么,现在就可以直接使用:- import("rbac");
- import("page");
复制代码
导入Rbac和Page类,别名导入方式禁止使用import方法的第二和第三个参数,别名导入方式的效率比命名空间导入方式要高效,缺点是需要预先定义相关别名。联系客服