ThinkPHP import 类库导入 T…
来源:互联网 发布:淘宝手机端优惠券链接 编辑:程序博客网 时间:2024/06/03 23:48
ThinkPHP 模拟了 Java 的类库导入机制,统一采用 import 方法进行类文件的加载。import 方法是ThinkPHP 内建的类库和文件导入方法,提供了方便和灵活的文件导入机制,完全可以替代 PHP 的 require 和include 方法。
但对于第三方类库,我们建议使用
import 语法:
boolen import(class, baseUrl, ext)
import 方法是 ThinkPHP内置的一个普通函数,可以在模块操作内自由使用,可以参考
import 类库导入例子
导入 ThinkPHP 基类库文件
import 方法导入
// 导入 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类,即使实际上的类名可能不存在冲突,但是按照
什么时候需要使用 import 方法?
import 方法用于导入当前需要而 ThinkPHP 又不能自动载入的文件,如系统基类 ORG 与 Com目录下的扩展基类,自己的类库等。至于第三方类库,也可以使用 import 方法导入,但建议使用 vendor 方法导入。
import 方法与 import 标签的区别
import 方法用于模块操作中导入不能自动加载的文件类库,import 标签用于在模板中导入外部 Js 和 CSS文件。
import 方法与 PHP6 import
在未来的 PHP6 版本中开始支持命名空间和 import 关键字,因此可以预见,ThinkPHP 可能会对 import方法加以改写。
本文来自:http://www.itokit.com/2012/0306/73254.html
- ThinkPHP import 类库导入 T…
- resource is out of sync with t…
- 10055 - Hashmat t…
- ADB server didn't ACK * failed t…
- Locally vs. Dictionary Managed T…
- An interesting website related t…
- the import ** cannot be resolve…
- can't call a non static method f…
- DB2 Basics: Fun with Dates and T…
- Error: Import Project error:Res…
- Integrated Security =T…
- 【原创】mysql update t…
- 【转】导入工程的“The import…
- 项目导入时报错:The import&…
- Lesson 85 Never t…
- Lesson 62 After t…
- nothing to say, t…
- Failed to write t…
- YII CRUD 例子
- 通过Python访问XAMPP里面的MySQL数…
- AT91Sam9260的网卡驱动
- python下的MySQLdb使用
- jQuery-Selectors(选择器)的使用(一、基本篇)
- ThinkPHP import 类库导入 T…
- Memcache所有方法及参数详解
- Azure Linux 虚机上配置 RAID 的常见问题及解决方案
- Memcache基础教程
- Spring Boot:定制servlet filters
- php定时计划任务介绍
- 无法打开包括源文件"extensions/cocos-ext.h" (包括无法打开cocos的任何源文件都用此方法)
- PHP正则表达式的几则使用技…
- 使用Memcache缓存MySQL查询