PhalApi框架扩展类库
扩展类库简介
致力于与开源项目一起提供企业级的解决方案!
此部分类库为PhalApi框架下可重用的扩展类库,各个扩展相自独立,可以根据需要自动安装使用。
此扩展类库可以是基于已有的第三方开源类库的二次开发和集成,也可以是自主研发的组件、工具、模块。通过使用可重用的扩展类库,可大大减少开发成本,并且慢慢地会发现,原来编程本来就是一件如此简单的事情,就像搭积木一样。
正如我们一直提倡的:接口,从简单开始!
扩展类库列表
扩展类库composer名称 | 扩展类库名称 | 简要说明 |
---|---|---|
phalapi/apk | APK文件解包处理 | 对APK进行解包,支持绝大部分APK文件处理。 |
phalapi/auth | Auth权限扩展 | 实现了基于用户与组的权限认证功能,与RBAC权限认证类似,主要用于对服务级别的功能进行权限控制。 by twodayw |
phalapi/cli | CLI扩展类库 | 可用于开发命令行应用,基于GetOpt,主要作用是将命令参数进行解析和处理。 |
Cluster | 基于PhalApi的DB集群拓展 | 为了解决大量数据写入分析的问题,支持大量select、和大量insert。 |
CryptTraffic | 移动设备通信加密 | 用于移动设备通信加密。 |
Excel | PhalApi-Excel | 读取Excel。 |
Facepp | face++接口 | face++接口。 |
phalapi/fast-route | FastRoute快速路由 | 基于FastRoute实现,通过配置实现自定义路由配置,从而轻松映射service接口服务。 |
phalapi-image | PhalApi-Image图像处理 | 按照尺寸压缩上传图片,参考自ThinkPhP图形处理。by 吞吞小猴 |
KafKa | 简单舒适的PHP-KafKa拓展 | 基于rdKafKa封装的一个简单舒适KafKa拓展。 |
Log4php | 基于log4php的日志扩展 | 兼容PhalApi日志的接口操作,同时基于log4php完成更多出色的日志工作。 |
Medoo | Medoo数据库驱动 | Medoo数据库驱动。 |
OSS | PhalApi-OSS阿里云OSS包 | 对阿里云的OSS文件服务器的封装。 |
PHPExcel | PhalApi-PHPExcel扩展 | 提供了更为强大的Excel处理功能。 |
phalapi/PHPMailer | 基于PHPMailer的邮件发送 | 用于发送邮件。 |
PHPRPC | 代理模式下phprpc协议的轻松支持 | 可用于phprpc协议的调用,服务端只需要简单添加入口即可完美切换。 |
Pay | 基于PhalApi的第三方支付扩展 | 支持微信支付和支付宝支付。 |
Payment | 微信支付及支付宝支付扩展 | 支持微信支付和支付宝支付。 |
phalapi/qiniu | 七牛云存储接口调用 | 可用于将图片上传到七牛云存储,或者七牛SDK包提供的其他功能。 |
RabbitMQ | PhalApi-RabbitMQ队列拓展 | 基于队列标杆中的RabbitMQ的队列扩展。 |
phalapi/redis | 基于PhalApi的Redis拓展 | 提供更丰富的Redis操作,并且进行了分库处理可以自由搭配。by 喵了个咪 |
phalapi-sms | PhalApi-SMS容联云短信服务器扩展 | 基于容联云通讯,发送短信。 |
ctbsea/phalapi-smarty | 基于PhalApi的Smarty扩展 | 基于老牌的PHP模版引擎Smarty,提供视图渲染功能。 |
chenall/phalapi-soap | SOAP扩展 | 使用PHP官方提供的SOAP协议,用于搭建Web Services。by chenall |
Swoole | Swoole扩展 | 基于swoole,支持的长链接和异步任务实现。 |
phalapi/task | 计划任务扩展 | 用于后台计划任务的调度。 |
ThirdLogin | 第三方登录扩展 | 第三方登录。 |
Translate | PhalApi-Translate百度翻译扩展 | 基于百度翻译的翻译。 |
UCloud | 图片上传扩展 | 用于图片文件上传。 |
User | User用户扩展 | 提供用户、会话和集成第三方登录。 |
steveak/view | View视图扩展 | 提供视图渲染功能。by steve |
微信开发扩展 | 可用于微信的服务号、订阅号、设备号等功能开发。 | |
Xhprof | 性能分析工具PhalApi-Xhprof | 对Facebook开源的轻量级PHP性能分析工具进行了封装拓展。 |
YoukuClient | 优酷开放平台接口扩展 | 用于调用优酷开放平台的接口。 |
Zip | PhalApi-Zip压缩文件处理 | 用于处理文件压缩。 |
phalapi/qrcode | PhalApi 二维码扩展 | 二维码扩展,基于PHP QRCode实现。可用于生成二维码图片。 |
phalapi/pinyin | PhalApi 2.x 拼音扩展 | PhalApi 2.x 拼音扩展,基于overtrue/pinyin实现。 |
phalapi-gtcode | 极验验证码扩展 | 极验验证码扩展,by 吞吞小猴 |
phalapi/jwt | 基于PhalApi2的JWT拓展 | JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。by twodayw |
chenall/phalapi-weixin | 微信扩展 | 微信公众号、企业号等开发扩展, 使用Eastwechat。 by chenall |
phalapi/wechatmini | 微信小程序扩展 | PhalApi 2.x 微信小程序扩展 by JamesLiuquan |
温馨提示:未有composer链接的,表示尚未从1.x迁移到2.x版本,可在原来的Phalapi-Library扩展类库项目中查阅。
扩展类库的使用
对于某个扩展类库,当需要使用时,可以按“安装、配置、使用”三步曲进行。
安装
扩展类库的安装很简单,在PhalApi 2.x版本下,直接通过在composer.json文件中配置需要依赖的扩展类库即可。
例如,项目本身自带的Task扩展类库:
{
"require": {
"phalapi/task": "2.0.*"
}
}
配置好后,执行composer update
更新操作即可。
至此,便完成了扩展类库的安装,相当简单。
配置注册
根据不同的扩展类库,其配置和注册的情况不同,有些不需要配置也不需要注册,有些需要配置、注册中的一种,有些可能配置、注册都需要。
何为配置?
这里说的配置是指在项目配置文件./config/app.php内添加对应扩展类库的配置,配置选项的路径通常为:app.扩展类库名称
。此外,有的扩展类库可能还需要配置数据库配置文件./config/dbs.php。
何为注册?
而注册则是指将对应的扩展类库注册到DI容器\PhalApi\DI()
中,需要在./config/di.php文件中配置。注册的服务名称通常为扩展类库的小写名称。
注册好后,便可以在项目需要的位置进行调用了。
使用
不同的扩展类库,其提供的功能不同,所以具体的使用也不尽相同。当使用到某个扩展类库时,可以参考对应的文档说明。有的扩展可能需要调用其内部接口才能实现对应的功能,有些扩展可能提供了直接可用的接口服务。
扩展类库开发指南
为了统一扩展类库的风格、便于用户更容易使用,这里建议:
- 代码:遵循composer和psr-4的风格,并尽量Lite.php为入口类,一个扩展,一个Git项目,源代码可放置在自己的Git仓库;
- composer:建议统一注册在phalapi下,可联系dogstar;
- 配置:统一放置在\PhalApi\DI()->config->get('app.扩展包名')中,避免配置冲突;
- 文档:统一提供README.md文件,对扩展类库的功能、安装和配置、使用示例以及运行效果进行说明;
在composer下开发扩展类库的建议
- 约定上依赖phalapi/kernal, 但扩展类库内不要配置依赖,以免框架升级导致扩展不兼容
- 为简化起见,扩展类库默认统一使用master分支作为安装版本,免去多版本管理
从微架构到扩展类库的演进
在应用项目的实际开发,我们也可以有意识地将一些通用的工具和操作与业务分离,以便可以在项目内更好地重用。当抽离成工具或者通用类后,则可以进一步推广到公司内其他项目,即组件复用。如果觉得可以,则发扬开源精神,分享给社区。这也是符合从微架构到应用构架、系统架构、乃至企业架构的演进之路。