Thinkphp 框架扩展之类库扩展操作详解
发布:smiling 来源: PHP粉丝网 添加日期:2022-03-01 09:43:53 浏览: 评论:0
这篇文章主要介绍了Thinkphp 框架扩展之类库扩展操作,结合实例形式分析了Thinkphp 类库扩展的相关原理、实现方法与操作注意事项,需要的朋友可以参考下。
本文实例讲述了Thinkphp 框架扩展之类库扩展操作,分享给大家供大家参考,具体如下:
类库扩展
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{
- }
记住一个原则,命名空间的路径和实际的文件路径对应的话 就可以实现直接实例化的时候自动加载。
Tags: Thinkphp框架扩展 Thinkphp类库
- 上一篇:TP框架实现上传一张图片和批量上传图片的方法分析
- 下一篇:最后一页
相关文章
- ·thinkphp框架类库扩展操作示例(2022-01-24)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)