ThinkPHP 3.2公共类库、应用类库ThinkPHP/Library讲解
一、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讲解相关推荐
- php 如何封装类库,ThinkPHP里的import方法用于类库导入的封装实现实例详解
ThinkPHP里的import方法用于类库导入的封装实现实例详解 分类:PHP_Python| 发布:佚名| 查看: | 发表时间:2014/7/1 import方法是ThinkPHP框架用于类库导 ...
- ThinkPHP中vendor()方法导入第三方类库的用法!ThinkPHP 3.2 vendor()方法的深入研究!
ThinkPHP vendor 方法导入第三方类库 第三方类库 第三方类库指除了 ThinkPHP 框架.应用项目类库之外的其他类库,一般由第三方系统或产品提供,如 Smarty.Zend 等系统的类 ...
- Thinkphp入门-创建一个最简单的ThinkPhp项目工程
从今天起,开始认真写博客,记录总结一些经验,也分享一下自己的学习过程. 说一说ThinkPhp入门创建工程吧,开始ThinkPhp应用编程的第一步. 软件环境: 1.phpstom,下载链接:点击打开 ...
- thinkphp 5.0.3 rce getshell_关于ThinkPHP的一些渗透方式
ThinkPHP是一个快速.兼容而且简单的轻量级国产PHP开发框架,可以支持Windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql.PgSQL.Sqlit ...
- php300类库,扩展类库 · PHP300FrameWork · 看云
#### 类库 - mysql > 当我们在进行程序开发的时候有N种情况会用到数据库,在众多数据库当中,mysql数据库是一种轻便的是关系型数据库,搭配php来进行开发最好不过,下面我们介绍下在 ...
- itext java_iText - PDF类库 - 组件类库 - JAVA开源项目 - 开源吧
相关开源项目 Connla:Connla是一个Java包用于创建可导成TXT,CSV,HTML,XHTML,XML,PDF和XLS等格式的数据集. FOP:FOP是由James Tauber发起的一个 ...
- 如果要用thinkphp框架_php需要改哪些配置,thinkPHP框架动态配置用法实例分析
本文实例讲述了thinkPHP框架动态配置用法.分享给大家供大家参考,具体如下: 最近在用@ThinkPHP 做系统的时候,要用到一个功能,就要动态的将系统的配置参数保存到Config文件中.以往,我 ...
- thinkphp删除某一学生_基于ThinkPHP实现批量删除
本文实例分析了基于ThinkPHP实现批量删除的代码实例,分享给大家供大家参考,具体如下: 废话不多说,先上效果图: HTML布局(基于bootstrap) 留言列表 返回 删除 id名称邮箱内容日期 ...
- 【转】.NET Core 可移植类库PCL Portable Class Library详解
转自:https://www.kaifaxueyuan.com/server/dotnet-core/dotnet-core-portable-class-library.html 在这一章中,我们将 ...
最新文章
- Python-map、reduce、filter、sorted函数
- SQL Server数据库新建拥有部分查看操作权限的用户
- PHP设置二维码中间为logo
- 私.Modbus测试_ZC02_串口方式
- 边界测试——让BUG现形
- Picasso-源码解析(二)
- sourcetree,创建工作流报错:Fatal: Not a gitflow-enabled repo yet. Please run 'git flow init' first.-》解决办法...
- python报错怎么看_python中的错误如何查看
- MYSQL数据库查询删除创建企业基本知识
- JavaScript学习笔记:对象
- 基于DOS的ipc$最详攻略。
- Salesforce Ventures为云初创公司Vlocity注资5000万美元
- 1124 Raffle for Weibo Followers(20 分)
- 数据挖掘:概念与技术(第三版)之第四章的学习记录
- win7下安装PADS2007
- STM8S103之tim2PWM输出
- QC七大手法之直方图详解
- 数字单位转换(例:元->万元)
- fullpage框架
- 淘宝闲鱼京东等电商api的简单调用
热门文章
- 机器人学习--有参考意义的视频
- HTML+CSS+JavaScript复习笔记持更(九)——CSS3常用属性之盒模型
- php7 参数类型限定,PHP参数类型限制 - Corwien的博客 - OSCHINA - 中文开源技术交流社区...
- 2017年如何成为全栈工程师,这些技能是你必须具备的!
- mysql db python_python下的MySQLdb使用
- Python 实现快排、堆排
- MySQL 笔记8 -- 存储过程和索引
- 端计算(9)-android opencv(1)
- 【学术相关】谈谈国自然申请中标的经验
- 【深度学习】SETR:基于视觉 Transformer 的语义分割模型