一、ThinkPHP的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的。只要按照规范定义,都可以实现自动加载。
        
公共类库

公共类库通常是指ThinkPHP/Library目录下面的类库,例如:

            Think目录:系统核心类库
            Org目录:第三方公共类库

这些目录下面的类库都可以自动加载,你只要把相应的类库放入目录中,然后添加或者修改命名空间定义。 你可以在Org/Util/目录下面添加一个Image.class.php 文件,然后添加命名空间如下:

namespace Org\Util;
            class Image {
            }

这样,就可以用下面的方式直接实例化Image类了:

$image = new \Org\Util\Image;

        除了这些目录之外,你完全可以在ThinkPHP/Library目录下面添加自己的类库目录,例如,我们添加一个Com目录用于企业类库扩展:

Com\Sina\App类(位于Com/Sina/App.class.php )

            namespace Com\Sina;
            class App {
            }

Com\Sina\Rank类(位于Com/Sina/Rank.class.php)

namespace Com\Sina;
            class Rank {
            }

公共类库除了在系统的Library目录之外,还可以自定义其他的命名空间,我们只需要注册一个新的命名空间,在应用或者模块配置文件中添加下面的设置参数:

'AUTOLOAD_NAMESPACE' => array(
            'Lib' => APP_PATH.'Lib',
            )

我们在应用目录下面创建了一个Lib目录用于放置公共的Lib扩展,如果我们要把上面两个类库放到Lib\Sina目录下面,只需要调整为:

Lib\Sina\App类(位于Lib/Sina/App.class.php )

namespace Lib\Sina;
            class App {
            }

Lib\Sina\Rank类(位于Lib/Sina/Rank.class.php)

namespace Lib\Sina;
            class Rank {
            }

如果你的类库没有采用命名空间的话,需要使用import方法先加载类库文件,然后再进行实例化,例如: 我们定义了一个Counter类(位于Com/Sina/Util/Counter.class.php):

class Counter {
            }

在使用的时候,需要按下面方式调用:

import('Com.Sina.Util.Couter');
            $object = new \Counter();

        应用类库

应用类库通常是在应用或者模块目录下面的类库,应用类库的命名空间一般就是模块的名称为根命名空间,例如: Home\Model\UserModel类(位于Application\Home\Model)

            namespace Home\Model;
            use Think\Model;
            class UserModel extends Model{
            }

Common\Util\Pay类(位于Application\Common\Util)

namespace Common\Util;
            class Pay {
            }

Admin\Api\UserApi类(位于Application\Admin\Api)

namespace Admin\Api;
            use Think\Model;
            class UserApi extends Model{
            }

记住一个原则,命名空间的路径和实际的文件路径对应的话 就可以实现直接实例化的时候自动加载。

ThinkPHP 3.2公共类库、应用类库ThinkPHP/Library讲解相关推荐

  1. php 如何封装类库,ThinkPHP里的import方法用于类库导入的封装实现实例详解

    ThinkPHP里的import方法用于类库导入的封装实现实例详解 分类:PHP_Python| 发布:佚名| 查看: | 发表时间:2014/7/1 import方法是ThinkPHP框架用于类库导 ...

  2. ThinkPHP中vendor()方法导入第三方类库的用法!ThinkPHP 3.2 vendor()方法的深入研究!

    ThinkPHP vendor 方法导入第三方类库 第三方类库 第三方类库指除了 ThinkPHP 框架.应用项目类库之外的其他类库,一般由第三方系统或产品提供,如 Smarty.Zend 等系统的类 ...

  3. Thinkphp入门-创建一个最简单的ThinkPhp项目工程

    从今天起,开始认真写博客,记录总结一些经验,也分享一下自己的学习过程. 说一说ThinkPhp入门创建工程吧,开始ThinkPhp应用编程的第一步. 软件环境: 1.phpstom,下载链接:点击打开 ...

  4. thinkphp 5.0.3 rce getshell_关于ThinkPHP的一些渗透方式

    ThinkPHP是一个快速.兼容而且简单的轻量级国产PHP开发框架,可以支持Windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql.PgSQL.Sqlit ...

  5. php300类库,扩展类库 · PHP300FrameWork · 看云

    #### 类库 - mysql > 当我们在进行程序开发的时候有N种情况会用到数据库,在众多数据库当中,mysql数据库是一种轻便的是关系型数据库,搭配php来进行开发最好不过,下面我们介绍下在 ...

  6. itext java_iText - PDF类库 - 组件类库 - JAVA开源项目 - 开源吧

    相关开源项目 Connla:Connla是一个Java包用于创建可导成TXT,CSV,HTML,XHTML,XML,PDF和XLS等格式的数据集. FOP:FOP是由James Tauber发起的一个 ...

  7. 如果要用thinkphp框架_php需要改哪些配置,thinkPHP框架动态配置用法实例分析

    本文实例讲述了thinkPHP框架动态配置用法.分享给大家供大家参考,具体如下: 最近在用@ThinkPHP 做系统的时候,要用到一个功能,就要动态的将系统的配置参数保存到Config文件中.以往,我 ...

  8. thinkphp删除某一学生_基于ThinkPHP实现批量删除

    本文实例分析了基于ThinkPHP实现批量删除的代码实例,分享给大家供大家参考,具体如下: 废话不多说,先上效果图: HTML布局(基于bootstrap) 留言列表 返回 删除 id名称邮箱内容日期 ...

  9. 【转】.NET Core 可移植类库PCL Portable Class Library详解

    转自:https://www.kaifaxueyuan.com/server/dotnet-core/dotnet-core-portable-class-library.html 在这一章中,我们将 ...

最新文章

  1. Python-map、reduce、filter、sorted函数
  2. SQL Server数据库新建拥有部分查看操作权限的用户
  3. PHP设置二维码中间为logo
  4. 私.Modbus测试_ZC02_串口方式
  5. 边界测试——让BUG现形
  6. Picasso-源码解析(二)
  7. sourcetree,创建工作流报错:Fatal: Not a gitflow-enabled repo yet. Please run 'git flow init' first.-》解决办法...
  8. python报错怎么看_python中的错误如何查看
  9. MYSQL数据库查询删除创建企业基本知识
  10. JavaScript学习笔记:对象
  11. 基于DOS的ipc$最详攻略。
  12. Salesforce Ventures为云初创公司Vlocity注资5000万美元
  13. 1124 Raffle for Weibo Followers(20 分)
  14. 数据挖掘:概念与技术(第三版)之第四章的学习记录
  15. win7下安装PADS2007
  16. STM8S103之tim2PWM输出
  17. QC七大手法之直方图详解
  18. 数字单位转换(例:元->万元)
  19. fullpage框架
  20. 淘宝闲鱼京东等电商api的简单调用

热门文章

  1. 机器人学习--有参考意义的视频
  2. HTML+CSS+JavaScript复习笔记持更(九)——CSS3常用属性之盒模型
  3. php7 参数类型限定,PHP参数类型限制 - Corwien的博客 - OSCHINA - 中文开源技术交流社区...
  4. 2017年如何成为全栈工程师,这些技能是你必须具备的!
  5. mysql db python_python下的MySQLdb使用
  6. Python 实现快排、堆排
  7. MySQL 笔记8 -- 存储过程和索引
  8. 端计算(9)-android opencv(1)
  9. 【学术相关】谈谈国自然申请中标的经验
  10. 【深度学习】SETR:基于视觉 Transformer 的语义分割模型