ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# PhalApi框架扩展类库 ## 扩展类库简介 ### 致力于与开源项目一起提供企业级的解决方案! 此部分类库为PhalApi框架下可重用的扩展类库,各个扩展相自独立,可以根据需要自动安装使用。 此扩展类库可以是基于已有的第三方开源类库的二次开发和集成,也可以是自主研发的组件、工具、模块。通过使用可重用的扩展类库,可大大减少开发成本,并且慢慢地会发现,原来编程本来就是一件如此简单的事情,就像搭积木一样。 正如我们一直提倡的:**接口,从简单开始!** ## 扩展类库列表 扩展类库composer名称|扩展类库名称|简要说明 ---|---|--- APK|APK文件解包处理|对APK进行解包,支持绝大部分APK文件处理。 Auth|Auth权限扩展|实现了基于用户与组的权限认证功能,与RBAC权限认证类似,主要用于对服务级别的功能进行权限控制。 [phalapi/cli](https://github.com/phalapi/cli)|CLI扩展类库|可用于开发命令行应用,基于GetOpt,主要作用是将命令参数进行解析和处理。 Cluster|基于PhalApi的DB集群拓展|为了解决大量数据写入分析的问题,支持大量select、和大量insert。 CryptTraffic|移动设备通信加密|用于移动设备通信加密。 Excel|PhalApi-Excel|读取Excel。 Facepp|face++接口|face++接口。 [phalapi/fast-route](https://github.com/phalapi/fast-route)|FastRoute快速路由|基于FastRoute实现,通过配置实现自定义路由配置,从而轻松映射service接口服务。 Image|PhalApi-Image图像处理|按照尺寸压缩上传图片,参考自ThinkPhP图形处理。 KafKa|简单舒适的PHP-KafKa拓展|基于rdKafKa封装的一个简单舒适KafKa拓展。 Log4php|基于log4php的日志扩展|兼容PhalApi日志的接口操作,同时基于log4php完成更多出色的日志工作。 Medoo|Medoo数据库驱动|Medoo数据库驱动。 OSS|PhalApi-OSS阿里云OSS包|对阿里云的OSS文件服务器的封装。 PHPExcel|PhalApi-PHPExcel扩展|提供了更为强大的Excel处理功能。 PHPMailer|基于PHPMailer的邮件发送|用于发送邮件。 PHPRPC|代理模式下phprpc协议的轻松支持|可用于phprpc协议的调用,服务端只需要简单添加入口即可完美切换。 Pay|基于PhalApi的第三方支付扩展|支持微信支付和支付宝支付。 Payment|微信支付及支付宝支付扩展|支持微信支付和支付宝支付。 Qiniu|七牛云存储接口调用|可用于将图片上传到七牛云存储,或者七牛SDK包提供的其他功能。 RabbitMQ|PhalApi-RabbitMQ队列拓展|基于队列标杆中的RabbitMQ的队列扩展。 Redis|基于PhalApi的Redis拓展|提供更丰富的Redis操作,并且进行了分库处理可以自由搭配。 SMS|PhalApi-SMS容联云短信服务器扩展|基于容联云通讯,发送短信。 Smarty|基于PhalApi的Smarty扩展|基于老牌的PHP模版引擎Smarty,提供视图渲染功能。 SOAP|SOAP扩展|使用PHP官方提供的SOAP协议,用于搭建Web Services。 Swoole|Swoole扩展|基于swoole,支持的长链接和异步任务实现。 [phalapi/task](https://github.com/phalapi/task)|计划任务扩展|用于后台计划任务的调度。 ThirdLogin|第三方登录扩展|第三方登录。 Translate|PhalApi-Translate百度地图翻译扩展|基于百度翻译的翻译。 UCloud|图片上传扩展|用于图片文件上传。 User|User用户扩展|提供用户、会话和集成第三方登录。 View|Vuew视图扩展|提供视图渲染功能。 Wechat|微信开发扩展|可用于微信的服务号、订阅号、设备号等功能开发。 Xhprof|性能分析工具PhalApi-Xhprof|对Facebook开源的轻量级PHP性能分析工具进行了封装拓展。 YoukuClient|优酷开放平台接口扩展|用于调用优酷开放平台的接口。 Zip|PhalApi-Zip压缩文件处理|用于处理文件压缩。 > 温馨提示:未有composer链接的,表示尚未从1.x迁移到2.x版本,可在原来的[Phalapi-Library扩展类库](https://github.com/phalapi/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](https://packagist.org/packages/phalapi/phalapi)下,可联系dogstar; + 配置:统一放置在```\PhalApi\DI()->config->get('app.扩展包名')```中,避免配置冲突; + 文档:统一提供README.md文件,对扩展类库的功能、安装和配置、使用示例以及运行效果进行说明; ### 从微架构到扩展类库的演进 在应用项目的实际开发,我们也可以有意识地将一些通用的工具和操作与业务分离,以便可以在项目内更好地重用。当抽离成工具或者通用类后,则可以进一步推广到公司内其他项目,即组件复用。如果觉得可以,则发扬开源精神,分享给社区。这也是符合从微架构到应用构架、系统架构、乃至企业架构的演进之路。 +