TP引进第三方类库

7-02 249 views

Library目录下面的子目录都是一个根命名空间,也就是说以Think、Org为根命名空间的类都可以自动加载:

1、Org

  • 适用于:符合TP命名规范和后缀的类库,使用的命名空间和路径一致
  • 例如:
  • //定义了一个类 \Org\Util\Auth 类:
  • namespace Org\Util;
  • class Auth { }
  • //保存到 ThinkPHP/Library/Org/Util/Auth.class.php,实例化类
  • new \Org\Util\Auth();

 

2、import

  • 适用于:导入任何类库
  • 例如:
  • // 导入Org类库包 Library/Org/Util/Date.class.php类库
  • import("Org.Util.Date");
  • // 导入Home模块下面的 Application/Home/Util/UserUtil.class.php类库
  • import("Home.Util.UserUtil");
  • // 导入当前模块下面的类库
  • import("@.Util.Array");
  • // 导入Vendor类库包 Library/Vendor/Zend/Server.class.php
  • import('Vendor.Zend.Server');

 

注意:

  • 1)对于import方法,系统会自动识别导入类库文件的位置,ThinkPHP可以自动识别的类库包包括Think、Org、Com、Behavior和Vendor包,以及Library目录下面的子目录;
  • 2)如果你的类库没有使用命名空间定义的话,实例化的时候需要加上根命名空间;
  • 3)import方法是无法导入具有点号的类库文件的,因为点号会直接转化成斜线

 

3、vendor——系统内置的封装函数,仍使用import引入;

  • 适用于:放在Vendor目录下面,以.php为类文件后缀,也没用采用命名空间
  • 例如:
  • //我们把 Zend 的 Filter\Dir.php 放到 Vendor 目录下面,导入类库
  • Vendor('Zend.Filter.Dir');
  • //实例化类库
  • new \xxx();

 

4、类库名中有".",用"#"代替即可

 

5、在tp框架实现阿里云短信功能

  1. 将阿里云短信sdk包和demo类放在ThinkPHP/library/Vendor目录下;
  2. 在相应模块的Common/function函数中引用类,并进行二次封装;(若没有function.php文件,自行添加即可)
  3. 引用:Vendor('文件名')
  4. 即可在控制器中调用函数发送短信。

欢迎留言