Thinkphp 框架扩展之类库扩展操作解析
发布时间 - 2020-06-09 00:00:00 点击率:次
thinkphp 框架扩展之类库扩展操作详解
这篇文章主要介绍了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{
}记住一个原则,命名空间的路径和实际的文件路径对应的话 就可以实现直接实例化的时候自动加载。
推荐教程:《PHP视频教程》
# php
# thinkphp
# 命名空间
# class
# Namespace
# 类库
# 要把
# 只需要
# 自动加载
# 自己的
# 都是
# 是在
# 还可以
# 你可以
# 是指
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
EditPlus中的正则表达式实战(6)
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
如何挑选最适合建站的高性能VPS主机?
Laravel如何使用模型观察者?(Observer代码示例)
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
JS碰撞运动实现方法详解
Laravel如何使用Gate和Policy进行授权?(权限控制)
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
如何在云主机快速搭建网站站点?
详解Android——蓝牙技术 带你实现终端间数据传输
如何用景安虚拟主机手机版绑定域名建站?
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
详解jQuery停止动画——stop()方法的使用
公司网站制作需要多少钱,找人做公司网站需要多少钱?
Laravel观察者模式如何使用_Laravel Model Observer配置
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
Laravel如何实现API资源集合?(Resource Collection教程)
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
Laravel如何创建自定义Facades?(详细步骤)
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
Bootstrap整体框架之JavaScript插件架构
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
大型企业网站制作流程,做网站需要注册公司吗?
青岛网站建设如何选择本地服务器?
详解jQuery中基本的动画方法
如何快速搭建支持数据库操作的智能建站平台?
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
打造顶配客厅影院,这份100寸电视推荐名单请查收
Python3.6正式版新特性预览
开心动漫网站制作软件下载,十分开心动画为何停播?
新三国志曹操传主线渭水交兵攻略
php 三元运算符实例详细介绍
Laravel如何使用Vite进行前端资源打包?(配置示例)
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
如何快速选择适合个人网站的云服务器配置?
如何在万网主机上快速搭建网站?
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
浅析上传头像示例及其注意事项
Laravel如何为API生成Swagger或OpenAPI文档

