类库扩展包括基类库扩展、应用类库扩展和第三方类库扩展,所有扩展类库不会自动加载,需要手动加载或者定义别名和配置自动加载(详细可以参考4.2.3类库导入和4.2.5自动加载)。

1

基类库扩展

目前支持的基类库扩展包括ORG(第三方公共类库包)和Com(企业类库包)。你可以在ORG类库目录下面添加自己需要的类库,你甚至还可以创建属于自己企业的类库,只需要在Extend/Library目录下面创建Com目录,然后在里面增加相应的类库就可以方便的使用import方法导入了。例如,我们在Extend/Library/Com下面创建了Sina目录,并且放了Util\UnitTest.class.php类库文件,可以使用下面的方式导入

  1. import('Com.Sina.Util.UnitTest');

目前官方提供的扩展或者第三方扩展都在ORG类库包下面。

应用类库扩展

项目类库的扩展,和基类库的扩展一样,我们可以在项目类库目录增加你想要的子目录,也只有在项目类库目录下面增加的类库才能使用import方法导入。例如,我们在MyApp的项目类库目录Lib下面增加Common和Util目录,就可以这样加载这些目录下面的类库文件了:

  1. import('MyApp.Util.UnitTest');
  2. import('@.Common.CommonUtil');

第三方类库扩展

如果你直接使用的是第三方的类库包,或者是类名和后缀和ThinkPHP的默认规则不符合的,我们建议你放到第三方类库扩展目录Extend/Vendor目录下面,并使用vendor方法来导入。

例如,我们把Zend的Filter\Dir.php 放到Vendor目录下面,这个时候Dir文件的路径就是

Vendor\Zend\Filter\Dir.php,我们使用vendor方法导入就是:

  1. Vendor('Zend.Filter.Dir');

需要注意的是,vendor方法默认导入的类库后缀是php的而不是class.php的,如果你的第三方类库的后缀是class.php,可以使用:

  1. Vendor('Zend.Filter.Dir','','.class.php');

或者使用:

  1. import('Zend.Filter.Dir',VENDOR_PATH);

通过使用第三方类库扩展,我们可以直接使用Zend、CI或者其他框架中的类库。

话说TP框架里的Vendor这目录是干什么用的啊?类库扩展thinkphp3.1版本的更多相关文章

  1. tp框架里的 删改

    //显示主页面 <table width="> <tr> <td>代号</td> <td>名称</td> <td ...

  2. tp框架基础知识

    作者:黄力军 index.php入口文件:作用,所有tp框架里的内容要想访问文件.都要走index.php文件他是整个程序的入口 Application代表应用程序的目录   所有写的应用程序放这里 ...

  3. tp框架之对列表的一系列操作及跳转页面(详细步骤)

    依旧是在Main控制器里面写类方法,如果想看tp全部的话,可以从前几篇开始看,都是一整个步骤下来的 在控制器中重新写个类 然后再做个shouye.html页面 nation表的数据,将会在shou.h ...

  4. TP框架---Model模型层---做模型对象

    TP框架----Model模型层---------------做模型对象 Model模型层是用来做什么的呢???? 主要是用来做操作数据库访问的. 也就说明TP框架自带了一种访问数据库的方式,使用的是 ...

  5. tp框架--------where("1")

    今天看代码的时候看到一个令我难以理解的sql查询语句,这是tp框架里的 return $this->where("1")->order('ar_id desc')-&g ...

  6. tp 框架目录结构

    ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的.最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布.ThinkPHP从诞生以来一 ...

  7. 基于TP框架的ThinkCMF,控制器display方法源码分析

    昨天在写代码的时候,看见写了无数次的模版渲染方法:$this->display(),突然很想弄清楚它是如何实现的. 今天不忙,就分析了一下. class TestController exten ...

  8. tp框架之Model类与命名空间

    1.获取系统常量信息 public function shuchu() { var_dump(get_defined_constants()); } 2.跨控制器或跨模块调用 function dia ...

  9. TP框架主要文件夹注释

    TP框架主要文件夹注释 common -> 函数库目录 conf -> 配置文件目录lang -> 语言包librang -> 核心资源库 behacior -> 行为目 ...

随机推荐

  1. react看这篇就够了(react+webpack+redux+reactRouter+sass)

    本帖将对一下内容进行分享: 1.webpack环境搭建: 2.如何使用react-router: 3.引入sass预编译: 4.react 性能优化方案: 5.redux结合react使用: 6.fe ...

  2. Ruby学习之深入类

    在讨论对象模型时,对类做了初步了解,关于类本身,还有许多知识需要学习. 类定义 Ruby中,可以用class关键字或者Class.new方法来定义一个类,在Ruby中,类定义的同时就是在运行代码,类和 ...

  3. 数组a[n]中存放1-n中的n-1个数,给出算法找出重复的那一个数

    问题描述: 数组a[n]中存放1-n中的n-1个数,给出算法找出重复的那一个数. 算法一: 对数组a[n]进行冒泡排序,如果冒泡所得的最值和前一个最值相等,则该最值为重复的数. 分析: 该算法时间复杂 ...

  4. gcc编译器用法

    一个用c语言写的程序把他编译成计算机可执行的文件,一般有4个步骤 /*================================================================ ...

  5. MicroPython教程之TPYBoard v102 CAN总线通信

    0x00前言 CAN是控制器局域网络(ControllerAreaNetwork,CAN)的简称,是ISO国际标准化的串行通信协议.CAN总线结构简单,只需2根线与外部相连,并且内部集成了错误探测和管 ...

  6. python每日学习2018/1/11

    A.4 Python 关键字和内置函数 Python包含一系列关键字和内置函数,给变量命名时,知道这些关键字和内置函数很重要. 编程中面临的一个挑战是给变量指定合适的名称,变量名可以是任何东西,只要它 ...

  7. linux常用基本命令整理小结

    linux系统遵循的基本原则 由目标单一的小程序组成,组合小程序完成复杂任务: 一切皆文件: 尽量避免捕捉用户接口: 配置文件保存为纯文本文件: Linux命令行常识 命令格式 命令+选项+参数 选项 ...

  8. Aspects 源码学习

    AOP 面向切面编程,在对于埋点.日志记录等操作来说是一个很好的解决方案.而 Aspects 是一个对于AOP编程的一个优雅的实现,也可以直接借助这个库来使用AOP思想.需要值得注意的是,Aspect ...

  9. python 版本管理工具 pyenv 使用备忘

    安装步骤 安装 xcode-select 以及 homebrew(前者在安装 git 的时候装过,后者 mac 开发必备无需解释) 安装 pyenv brew install pyenv,用 pyen ...

  10. Java多线程同步问题:一个小Demo完全搞懂

    版权声明:本文出自汪磊的博客,转载请务必注明出处. Java线程系列文章只是自己知识的总结梳理,都是最基础的玩意,已经掌握熟练的可以绕过. 一.一个简单的Demo引发的血案 关于线程同步问题我们从一个 ...