##PhalApi框架扩展类库
### -- 致力于与开源项目一起提供企业级的解决方案!
此部分类库为 [PhalAPi框架](http://git.oschina.net/dogstar/PhalApi) 下的扩展类库包,各个扩展包各自独立,可以根据需要自动下载安装。
虽然此部分的扩展很多都是基于已有的第三方开源实现,或者开发同学自己实现分享的,但我们所做的不只是代码的搬运工,更多的是在系统架构上的组件库重用,以及在此引入 **防腐层** ,避免进入 **供应商锁定(Vendor Lock-In)** 。
除此之外,可以在PhalApi框架的基础上,快速引入符合我们国内实际项目开发需要的各种扩展。如时,您会发现,原来编程本来就是一件如此简单的事情,就像搭积木一样。
正如我们一直推荐的:
```
接口,从简单开始!
```
##目前已提供的扩展类库 - 针对使用者
###1、微信开发
此扩展可用于微信的服务号、订阅号、设备号等功能开发,则PhalApi框架下简单配置即可开发使用。
[更多请点这里查看使用文档](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.1%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9A%E5%BE%AE%E4%BF%A1%E5%BC%80%E5%8F%91)
###2、代理模式下phprpc协议的轻松支持
此扩展可用于phprpc协议的调用,服务端只需要简单添加入口即可完美切换。
[更多请点这里查看使用文档](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.2%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9A%E4%BB%A3%E7%90%86%E6%A8%A1%E5%BC%8F%E4%B8%8Bphprpc%E5%8D%8F%E8%AE%AE%E7%9A%84%E8%BD%BB%E6%9D%BE%E6%94%AF%E6%8C%81)
###3、基于PHPMailer的邮件发送
此扩展可用于发送邮件。
[更多请点这里查看使用文档](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.3%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9A%E5%9F%BA%E4%BA%8EPHPMailer%E7%9A%84%E9%82%AE%E4%BB%B6%E5%8F%91%E9%80%81)
###4、优酷开放平台接口调用
此扩展可用于调用优酷开放平台的接口。
[更多请点这里查看使用文档](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.4%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9A%E4%BC%98%E9%85%B7%E5%BC%80%E6%94%BE%E5%B9%B3%E5%8F%B0%E6%8E%A5%E5%8F%A3%E8%B0%83%E7%94%A8)
###5、七牛云存储接口调用
此扩展可以用于将图片上传到七牛CDN,或者其他七牛接口的调用。
[更多请点这里查看使用文档](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.5%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9A%E4%B8%83%E7%89%9B%E4%BA%91%E5%AD%98%E5%82%A8%E6%8E%A5%E5%8F%A3%E8%B0%83%E7%94%A8)
###6、用户、会话和第三方登录集成
此类库主要特点有:
+ 1、可以和第三方登录集成,包括:微信登录、新浪登录、QQ登录
+ 2、为客户端提供了直接可以调用的登录接口
+ 3、为服务端提供了直接可以检测用户登录态的操作
+ 4、支持token落地、高效缓存和分布式的数据库存储
+ 5、展示了如何开发一个项目级的类库、包括数据库配置、翻译等
[更多请点这里查看使用文档](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.8%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9A%E7%94%A8%E6%88%B7%E3%80%81%E4%BC%9A%E8%AF%9D%E5%92%8C%E7%AC%AC%E4%B8%89%E6%96%B9%E7%99%BB%E5%BD%95%E9%9B%86%E6%88%90)
###7、swoole支持下的长链接和异步任务实现
目前,此扩展类库提供了:
+ 长链接的接口调用
+ 异步计划任务的调用
[更多请点这里查看使用文档](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.9%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9Aswoole%E6%94%AF%E6%8C%81%E4%B8%8B%E7%9A%84%E9%95%BF%E9%93%BE%E6%8E%A5%E5%92%8C%E5%BC%82%E6%AD%A5%E4%BB%BB%E5%8A%A1%E5%AE%9E%E7%8E%B0)
###8、新型计划任务
此扩展类型用于后台计划任务的调度,主要功能点有:
+ 1、提供了Redis/文件/数据库三种MQ队列
+ 2、提供了本地和远程两种调度方式
+ 3、以接口的形式实现计划任务
[更多请点这里查看使用文档](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.6%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9A%E6%96%B0%E5%9E%8B%E8%AE%A1%E5%88%92%E4%BB%BB%E5%8A%A1)
###9、Auth 权限扩展 (由@黄苗笋提供)
实现了基于用户与组的权限认证功能,与RBAC权限认证类似,主要用于对服务级别的功能进行权限控制,主要功能点有:
+ 1、提供了接口服务维度的权限验证
+ 2、提供了可配置的组与规则
+ 3、支持免检用户
[更多请点这里查看使用文档](http://git.oschina.net/dogstar/PhalApi-Library/wikis/Auth-%E6%9D%83%E9%99%90%E6%89%A9%E5%B1%95%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3)
###11、FastRoute快速路由
此扩展基于 ![FastRoute](https://github.com/nikic/FastRoute) 实现,需要 **PHP 5.4.0** 及以上版本,可以通过配置实现自定义路由配置,从而轻松映射到PhalApi中的service接口服务。,主要有:
+ 1、基于FastRoute实现
+ 2、需要PHP 5.4.0 及以上版本
+ 3、通过配置文件来实现自定义路由,并映射到service
+ 4、可兼容无路由的历史URI
[更多请点这里查看使用文档](http://git.oschina.net/dogstar/PhalApi/wikis/%5B3.11%5D-%E6%89%A9%E5%B1%95%E7%B1%BB%E5%BA%93%EF%BC%9A%E5%9F%BA%E4%BA%8EFastRoute%E7%9A%84%E5%BF%AB%E9%80%9F%E8%B7%AF%E7%94%B1)
###12、基于PhalApi的DB集群拓展DB_Cluster (由@喵了个咪提供)
为应对海量数据分析与统计,提供针对分表分库统一封装的数据库操作接口,主要用于解决大量数据写入分析的问题。请注意:V0.1bate版本,很多功能尚不完善,只提供技术交流使用,请不要用于生产环境。主要特点有:
+ 1、适用于大量select和大量的insert的业务场景
+ 2、基于架构思维的实现
+ 3、分表分库算法介绍
+ 4、基准测试对比
[更多请点这里查看使用文档](http://git.oschina.net/dogstar/PhalApi-Library/tree/master/DB_Cluster/?dir=1&filepath=DB_Cluster&oid=a50865e4e86d8105bdc30c12a8193db1f119cdb5&sha=8c16393c1286f3921cb920dd21a4aab5eb05f8a3)
###13、基于PhalApi的Redis_Base拓展 (由@喵了个咪提供)
主要提供更丰富的Redis操作,并且进行了分库处理可以自由搭配
+ 1、适用于对Redis需要其他数据类型操作的业务
+ 2、可以用于队列脚本,封装了队列处理
[更多请点这里查看使用文档](http://git.oschina.net/dogstar/PhalApi-Library/wikis/%E5%9F%BA%E4%BA%8EPhalApi%E7%9A%84Redis%E6%8B%93%E5%B1%95--%E6%96%87%E6%A1%A3)
##扩展开发指南 - 针对开发者
为了统一扩展类库的风格、便于用户更容易使用,这里建议:
+ 代码:统一放置在Library目录下,各扩展包各自一个目录,尽量Lite.php入口类,遵循PEAR包命名规范;
+ 配置:统一放置在DI()->config->get('app.扩展包名')中,避免配置冲突;
+ 文档:统一提供WIKI文件对扩展类库的功能、安装和配置、使用示例以及运行效果进行说明;
##1.19.4 从微架构到扩展类库的演进
在应用项目的实际开发,我们也可以有意识地将一些通用的工具和操作与业务分离,以便可以在项目内更好地重用。当抽离成工具或者通用类后,则可以进一步推广到公司内其他项目,即组件复用。如果觉得可以,则发扬开源精神,分享给社区。这也是符合从微架构到应用构架、系统架构、乃至企业架构的演进之路。
- 欢迎使用PhalApi!
- 接口,从简单开始!
- [1.1]-下载与安装
- [1.2]-创建一个自己的项目
- [1.3]-在线体验
- [1.4]-文档、帮助和官网
- [1.10]-对PhalApi框架的抉择
- [1.11]-快速入门(backup)
- [1.12]-参数规则:接口参数规则配置
- [1.13]-统一的接口请求方式:_sevice=XXX.XXX
- [1.14]-统一的返回格式和结构:ret-data-msg
- [1.15]-数据库操作:基于NotORM的使用及优化
- [1.16]-配置读取:内外网环境配置的完美切换
- [1.17]-日记纪录:简化版的日记接口
- [1.18]-快速函数:人性化的关怀
- [1.19]-DI服务速查:各资源服务一览表
- [1.20]-DB操作:数据库基本操作速查
- [1.21]-类的自动加载:遵循PEAR包的命名规范
- [1.22]-签名验证:自定义签名规则
- [1.23]-请求和响应:GET和POST两者皆可得及超越JSON格式返回
- [1.24]-缓存策略:更灵活地可配置化的多级缓存
- [1.25]-国际化翻译:为走向国际化提前做好翻译准备
- [1.26]-数据安全:数据对称加密方案
- [1.27]-精益开发:更富表现力的Model层和重量级数据获取的应对方案
- [1.28]-COOKIE:对COOKIE原生态的支持及记忆加密升级版
- [1.29]-开放与封闭:多入口和统一初始化
- [1.30]-保持的力量:接口开发最佳实践
- [1.31]-新型计划任务:以接口形式实现的计划任务
- [2.11]-核心思想:DI依赖注入-让资源更可控
- [2.12]-海量数据:可配置的分库分表
- [2.13]-接口调试:在线SQL语句查看与性能优化
- [2.14]-测试驱动开发:意图导向编程下的接口开发
- [2.15]-演进:新型计划任务续篇
- [2.16]-领域驱动设计:应对复杂领域业务的Domain层
- [2.17]-微服务:Api接口服务层
- [2.18]-定制化:资源服务的再实现
- [2.19]-扩展库:可重用的扩展类库
- [2.20]-约定编程:架构明显的编程风格
- [2.21]-服务器统一部署方案简明版:CentOs---Nginx---php-fpm---MySql-[--Memcached]
- [2.22]-更多工具:精益项目和团队建设
- [3.1]-扩展类库:微信开发
- [3.2]-扩展类库:代理模式下phprpc协议的轻松支持
- [3.3]-扩展类库:基于PHPMailer的邮件发送
- [3.4]-扩展类库:优酷开放平台接口调用
- [3.5]-扩展类库:七牛云存储接口调用
- [3.6]-扩展类库:新型计划任务
- [3.8]-扩展类库:用户、会话和第三方登录集成
- [3.9]-扩展类库:swoole支持下的长链接和异步任务实现
- [3.11]-扩展类库:基于FastRoute的快速路由
- [4.2]-开发实战2:模拟优酷开放平台接口项目开发
- [4.3]-开发实战3:一个简单的小型项目开发(奔跑吧兄弟投票活动)
- [5.1]-架构与思想:PhalApi核心设计和思想解读
- [5.2]-杂谈:扯一些PhalApi的前世和今生
- [5.3]-框架总结:术语表和PHP开发建议
- [5.4]-许可
- [5.5]-联系和加入我们
- [5.6]-更新日记
- [5.8]-致框架贡献者:加入PhalApi开源指南
- [6.1]-基于接口查询语言的SDK包
- [6.2]-SDK包(JAVA版)
- [6.3]-SDK包(PHP版)
- [6.4]-SDK包(Objective-C版)
- [6.5]-SDK包(javascript版)
- [6.6]-SDK包(Ruby版)
- [8.1]-PhalApi视频教程
- 附录1:接口文档参考模板