ThinkPHP import 方法
ThinkPHP 模拟了 Java 的类库导入机制,统一采用 import 方法进行类文件的加载。import 方法是 ThinkPHP 内建的类库和文件导入方法,提供了方便和灵活的文件导入机制,完全可以替代 PHP 的 require 和 include 方法。
但对于第三方类库,我们建议使用
vendor 方法来导入。
import 语法:
boolen import(class, baseUrl, ext)
参数说明:
参数
说明
class |
必须,表示要导入的类库,采用命名空间的方式。 |
baseUrl |
可选,表示导入的基础路径,省略的话系统采用默认的规则,具体见下文。 |
ext |
可选,表示导入的类库后缀,默认是 .class.php 。 |
import 方法是 ThinkPHP 内置的一个普通函数,可以在模块操作内自由使用,可以参考
PHP include 和 require 的用法。
import 类库导入例子
导入 ThinkPHP 基类库文件
import 方法导入
ThinkPHP 基类库文件,约定导入 Think、ORG、Com 包以 ThinkPHP 系统基类库为相对起始目录:
// 导入 ThinkPHP系统目录/Lib/Think/Util/Session.class.php 文件
import("Think.Util.Session");
// 导入 ThinkPHP系统目录/Lib/ORG/Util/Page.class.php 文件
import("ORG.Util.Page");
导入项目应用类库文件
// 导入 MyApp项目 Lib/Action/UserAction.class.php 文件
import("MyApp.Action.UserAction");
// 导入 MyApp项目 Lib/ORG/Page.class.php 文件
import("MyApp.ORG.Page");
// 导入 MyApp项目 Lib/ORG/My/Image.class.php 文件
import("MyApp.ORG.My.Image");
如果是当前项目,可以简化为:
import("@.Action.UserAction");
import("@.ORG.Page");
import("@.ORG.My.Image");
这种写法有利于项目的移植。如果是导入其他项目的类库,必须指定项目名称:
import("OtherApp.Action.UserAction");
注意:使用这种方式导入其他项目的类库时,必须保证两个项目的目录是平级的,否则需要指定 baseUrl 参数。
指定 baseUrl 参数
对于以上导入系统类库和项目类库的情况,import 方法会自动识别类库导入的路径,其他情况就需要指定 baseUrl 参数。如导入当前文件所在目录下的 My.class.php 文件:
import("My",dirname(__FILE__));
指定 ext 参数
ext 参数表示导入的类库后缀,默认是 .class.php。如果导入的文件不是 *.class.php 格式的,可以指定 ext 参数。如导入当前文件所在目录下的 My.php 文件:
import("My",dirname(__FILE__),".php");
. 符号文件导入
在 import 方法中,. 符号是用于表示目录层次的,如果需要导入的文件名包含有 . 符号,如 User.Info.class.php ,那么需要以 # 号来代替 . 号:
import("@.Action.User#Info");
别名导入
如果在别名定义文件定义了别名:
'AdvModel' => THINK_PATH.'/Lib/Think/Core/Model/AdvModel.class.php',
可以使用 import 方法以别名的方式导入对应的类库文件:
import('AdvModel');
系统默认的别名定义文件位于 ThinkPHP 系统目录下的 Commonalias.php,也可以定义项目自己的别名文件。
其他说明
同名文件导入冲突
import 方法具有缓存和检测机制,相同的文件不会重复导入,如果发现导入了不同的位置下面的同名类库文件,系统会提示冲突,例如:
import("Think.Util.Array");
import("App.Util.Array");
上面的情况导入会产生引入两个同名的 Array.class.php 类,即使实际上的类名可能不存在冲突,但是按照
ThinkPHP 命名规范,类名和文件名是一致的,所以系统会抛出类名冲突的异常,并终止执行。
什么时候需要使用 import 方法?
import 方法用于导入当前需要而 ThinkPHP 又不能自动载入的文件,如系统基类 ORG 与 Com 目录下的扩展基类,自己的类库等。至于第三方类库,也可以使用 import 方法导入,但建议使用 vendor 方法导入。
import 方法与 import 标签的区别
import 方法用于模块操作中导入不能自动加载的文件类库,import 标签用于在模板中导入外部 Js 和 CSS 文件。
import 方法与 PHP6 import
在未来的 PHP6 版本中开始支持命名空间和 import 关键字,因此可以预见,ThinkPHP 可能会对 import 方法加以改写。
分享到:
相关推荐
本SDK是基于ThinkPHP开发类库扩展,因此只能在ThinkPHP平台下使用(ThinkPHP版本要求2.0以上)。DEMO中用到了控制器分层,因此运行DEMO需使用ThinkPHP3.1.2版本。 2,目前支持的平台 目前可用登录平台为:腾讯QQ,...
ThinkPHP类库导入和自动加载,能够让我们快速的对类库的导入和自动加载哟更大的帮助
ThinkPHP实现数据导出为Excel文件的PHPExcel类库文件
thinkphp5 验证码类库 安装 composer require topthink/think-captcha 使用 模板里输出验证码 <div>{:captcha_img()} 或者 <div><img src="{:captcha_src()}" alt="captcha" /> 上面两种的最终效果是一样的 控制器...
Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel导入导出Thinkphp5整合excel...
thinkPHP完整应用类库,简单,方便,使用,带支付类库,方便大家使用,快捷大家开发使用,高效完整的资源
thinkphp5 excel导入导出 thinkphp5 excel导入导出 thinkphp5 excel导入导出
主要介绍了thinkphp框架类库扩展操作,结合实例形式分析了thinkPHP框架类库扩展的原理、实现步骤与相关操作技巧,需要的朋友可以参考下
ThinkPHP是一轻量极的PHP框架,采用MVC设计模式
thinkphp5 验证码类库 安装 composer require topthink/think-captcha 使用 模板里输出验证码 <div>{:captcha_img()} 或者 <div><img /> 上面两种的最终效果是一样的 控制...
包含数据库资源 测试需要手动修改TP数据库配置
基于thinkphp框架开发的类,包括开发菜单,发送信息,基于httppost,httpget的请求,验证
config.php /** * Memcached */ 'PERSISTENTID' => 'mlm_cache',//持久链接标示 'MEMCACHED_HOST' => '127.0.0.1', //可数组形式 'MEMCACHED_PORT' => '12000',//可...\ThinkPHP\Library\Think\Cache\Driver 文件夹下
Thinkphp5和PHPexcel的结合,成就了导入导出的功能需求。
thinkphp3.2 复制到Apache 就可以直接用 thinkphp实现excel导入导出 直接可以用
thinkphp导出导入Excel。thinkphp导出导入Excel。thinkphp导出导入Excel。thinkphp导出导入Excel。thinkphp导出导入Excel。thinkphp导出导入Excel。thinkphp导出导入Excel。thinkphp导出导入Excel。
本文实例讲述了Thinkphp 框架扩展之类库扩展操作。分享给大家供大家参考,具体如下: 类库扩展 ... 你可以在Org/Util/目录下面添加一个Image.class.php 文件,然后添加命名空间如下: namespace Org\U
thinkphp5整合excel导入导出thinkphp5整合excel导入导出 thinkphp5整合excel导入导出thinkphp5整合excel导入导出
下面附上import的几个用法介绍 1、用法一 import(‘@.Test.Translate’);...导入类库的路径是:./ThinkPHP/Lib/Test/Translate.class.php 结论:import(‘Think’)是相对于系统目录的Lib目录而言 3、