遵循我们上面的命名空间定义规范的话,基本上可以完成类库的自动加载了,但是如果定义了较多的命名空间的话,效率会有所下降,所以,我们可以给常用的类库定义类库映射。命名类库映射相当于给类文件定义了一个别名,效率会比命名空间定位更高效,例如:

Loader::addClassMap('think\Log',LIB_PATH.'think\Log.php');
Loader::addClassMap('org\util\Array',LIB_PATH.'org\util\Array.php');

也可以利用addClassMap方法批量导入类库映射定义,例如:

$map = [
'think\Log' => LIB_PATH.'think\Log.php',
'org\util\array'=> LIB_PATH.'org\util\Array.php'
];
Loader::addClassMap($map);

虽然通过类库映射的方式注册的类可以不强制要求对应命名空间目录,但是仍然建议遵循PSR-4规范定义类库和目录。

类库导入

如果你不需要系统的自动加载功能,又或者没有使用命名空间的话,那么也可以使用think\Loader类的import方法手动加载类库文件,例如:

Loader::import('org.util.array');
Loader::import('@.util.upload');

示例

// 引入 extend/qrcode.php
Loader::import('qrcode', EXTEND_PATH);
// 助手函数
import('qrcode', EXTEND_PATH); // 引入 extend/wechat-sdk/wechat.class.php
Loader::import('wechat-sdk.wechat', EXTEND_PATH, '.class.php');
// 助手函数
import('wechat-sdk.wechat', EXTEND_PATH, '.class.php');

类库导入也采用类似命名空间的概念(但不需要实际的命名空间支持),支持的“根命名空间”包括:

目录 说明
behavior 系统行为类库
think 核心基类库
traits 系统Traits类库
app 应用类库
@ 表示当前模块类库包

如果完全遵从系统的命名空间定义的话,一般来说无需手动加载类库文件,直接实例化即可。

ThinkPHP5.0不推荐使用import方法。

thinkPHP 类库映射 类库导入的更多相关文章

  1. php 仿thinkphp的sql类库

    模仿thinkphp封装的类库 <?php /** * MySql操作类2015版 * 作者:咖啡兽兽 287962566@qq.com * 使用说明: * //包含文件 * inclode ' ...

  2. 使用thinkphp框架实现Excel导入数据库

    之前讲过php实现Excel导出数据库的随笔,链接:https://www.cnblogs.com/nuanai/p/6727711.html 之前的项目用到较多的就是Excel导出,现在用到了Exc ...

  3. C#-概念-类库:类库

    ylbtech-C#-概念-类库:类库 1.返回顶部 1. 类库(Class Library)是一个综合性的面向对象的可重用类型集合,这些类型包括:接口.抽象类和具体类.类库可以解决一系列常见编程任务 ...

  4. ThinkPHP第十二天(Import导入第三方类库方法,独立分组文件夹结构)

    1.Import(路径+类名,基础路径): 平时导入类时有三种基础路径:Think:import('Think.core.Action');Think表示ThinkPHP/Lib基础路径,完整路径为T ...

  5. thinkphp中的类库与引用import引入机制

    ThinkPHP的类库包括基类库和应用类库 控制器类 模块名+Action 例如 UserAction.InfoAction 模型类 模型名+Model 例如 UserModel.InfoModel ...

  6. ThinkPHP - 自定义扩展类库

    首先在想要使用类库的地方建立文件夹,文件名称随意,不能使用class 然后在配置文件中: 'AUTOLOAD_NAMESPACE' => array( 'Lib' => './Lib', ...

  7. ThinkPHP - 扩展个人类库 - 以验证码类为例子

    首先,在项目目录下创建Class文件夹,用于存储个人类文件. 之后建立Data目录存放所需字体文件,其他的数据也可以放在这个文件夹下. 然后再Conf文件夹下创建verify.php配置文件. 在co ...

  8. Thinkphp之PHPExcel类库函数的官方读取的几个例子

    1.使用 PHPExcel_IOFactory 读取文件 $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); 2.使用一个特定的读取类,读 ...

  9. Android类库常用类库一览

    在Android SDK中包括很多包文件,通过了解这些包的功能也有助于了解可以开发的功能. 在Android类库中,各种包写成android.*的方式,重要包的描述如下所示: android.app ...

随机推荐

  1. 使用jQuery快速高效制作网页交互特效--JavaScript操作BOM对象

    JavaScript操作BOM 一.window对象: 二.window对象的属性和方法 1.windows对象的常用属性: 语法:window.属性名="属性值" 2.windo ...

  2. LeetCode按照解题方法分类题目

    解题方法分类 1. 滑动窗口. 2. 双指针. 3. 快慢指针. 4. 区间合并. 5. 循环排序. 6. 原地反转链表. 7. 树上的BFS. 8. 树上的DFS. 9. 双堆. 10. 子集. 1 ...

  3. Linux 查看实时网卡流量的几种方式

    在工作中,我们经常需要查看服务器的实时网卡流量.通常,我们会通过这几种方式查看Linux服务器的实时网卡流量. 1. sar -n DEV 1 2 sar命令包含在sysstat工具包中,提供系统的众 ...

  4. Linux 内存分配失败(关于overcommit_memory)

    1.问题现象和分析:测试时发现当系统中空闲内存还有很多时,就报内存分配失败了,所有进程都报内存分配失败:sshd@localhost:/var/log>free             tota ...

  5. 十一.简单MariaDB数据库的管理

    默认端口:3306 1.安装 ]# yum -y install mariadb-server ]# systemctl restart mariadb 2.基本操作 ]# mysql #进入 ]&g ...

  6. 使用webuploader实现大文件分片上传

    文件夹数据库处理逻辑 public class DbFolder { JSONObject root; public DbFolder() { this.root = new JSONObject() ...

  7. TensorFlow(一):准备

    我的环境:win10+python3.6.4(64位) 一:安装python 根据自己的电脑下载python(32位或者64位)-->安装教程 安装好python后记得配置pip源,使用官方的源 ...

  8. (转)实验文档4:kubernetes集群的监控和日志分析

    改造dubbo-demo-web项目为Tomcat启动项目 Tomcat官网 准备Tomcat的镜像底包 准备tomcat二进制包 运维主机HDSS7-200.host.com上:Tomcat8下载链 ...

  9. 简单python脚本,将jupter notebook的ipynb文件转为pdf(包含中文)

    直接执行的python代码ipynb2pdf.py 主要思路.将ipynb文件转成tex文件,然后使用latex编译成pdf.由于latex默认转换不显示中文,需要向tex文件中添加相关中文包. 依赖 ...

  10. mysqlslap压力测试时出现"Can't connect to MySQL server"

    mysqlslap -utest -h 192.168.1.12 -p'test' --concurrency=100 --iterations=500 --create-schema='my_db' ...