##[8.1] PhalApi视频教程
***先在这里感谢以下录制小组的同学,是你们让世界看到PhalApi的视频教程!***
```
A西瓜妹子、听风不语、彩色的雨、Catch、喵了个咪、dogstar
```
PhalApi教程视频大纲,分为:基础教程、进阶教程、实战教程三类。
附上:
+ [喵了个咪的博客](http://w-blog.cn)
+ [PhalApi官网](http://www.phalapi.net/ "PhalApi官网")
+ [PhalApi Git项目仓库](http://git.oschina.net/dogstar/PhalApi/tree/release "开源中国Git地址")
+ [本次视频教程源代码](http://git.oschina.net/wenzhenxi/PhalApi-video/tree/master)
##1 基础教程##
###1.1 环境搭建,安装和helloword
[百度网盘](http://pan.baidu.com/s/1i5rUKrb) [优酷视频](http://v.youku.com/v_show/id_XMTUyODYxMDYyMA==.html)
```
1) phalapi介绍以及使用场景
2)建议使用liunx和各项环境配置最低
3)推荐IDE
4)框架编写的install展示
5)运行helloword!
```
###1.2 初识PhalApi
[百度网盘](http://pan.baidu.com/s/1i43jN6l) [优酷视频](http://v.youku.com/v_show/id_XMTUyODYxNTcwOA==.html)
```
1)目录功能讲解
2)数据库建库建表
3)连接数据库官方DEMO
```
###1.3 init介绍以及配置文件讲解log记录
[百度网盘](http://pan.baidu.com/s/1miISYnA) [优酷视频](http://v.youku.com/v_show/id_XMTUyODkzMTY1Mg==.html)
```
1)init文件作用内容讲解
2)配置文件使用讲解
3)以及log记录的活灵活用
```
###1.4 请求返回###
[百度网盘](http://pan.baidu.com/s/1eR8FBRc) [优酷视频](http://v.youku.com/v_show/id_XMTUyODkzMTc4OA==.html)
```
1)请求的参数验证getRules方法使用讲解
2)返回json数据讲解
3)返回报错讲解
```
###1.5 国际化和自动生成文档###
[百度网盘](http://pan.baidu.com/s/1nvb8apF) [优酷视频](http://v.youku.com/v_show/id_XMTUzNjc4MDUyOA==.html)
```
1)返回国际化T方法讲解
2)自动生成文档规范讲解
3)如何查看
4)注意不要使用缓存会出不来
```
###1.6 Model操作讲解###
[百度网盘](http://pan.baidu.com/s/1i468diX) [优酷视频](http://v.youku.com/v_show/id_XMTUzNzgyNDYwMA==.html)
```
1)Model表配置
2)NotORM的使用
3)简单的 curd 执行原生sql
```
###1.7 简单的小项目###
百度网盘 优酷视频
```
1)对用户的一个登录注册等操作的接口实际项目编写实战
2)并且总结
```
##2 进阶教程##
###2.1 DI思想讲解###
[百度网盘](http://pan.baidu.com/s/1skWFHAt) [优酷视频](http://v.youku.com/v_show/id_XMTUyODY3NDA4OA==.html)
```
一、DI简介
1)DI的通用说明
+ 容器
+ Martin Fowler
+ 示例
2)DI在π框架的角色
+ 汇点
+ 管理全部服务资源
+ 形成 **通用语言** ,实现快速开发
+ 减少重复写一些单例模式的代码,以及泛滥的全局变量
3)π框架开发的使用
二、DI资源服务分类
1)框架本身的资源服务
+ 公共服务和内部服务
+ 公共服务的使用
2)如何自定义资源服务
+ 三步走:实现 -> 注册 -> 使用
+ 示例
三、技巧与需要注意的事项
+ 一行优雅的代码: DI()->get('filter', 'PhalApi_Filter_None')->check();
+ 注意别踩坑!
```
###2.2 ADM模式深入浅出###
[百度网盘](http://pan.baidu.com/s/1gfwdbF1) [优酷视频](http://v.youku.com/v_show/id_XMTUzNzg4MDQ0OA==.html)
```
一、MVC模式与ADM模式
+ 为什么PhalApi自创ADM新模式?
二、ADM模式详解
+ Api接口层
+ Domain领域层
+ Model数据层
三、三层结构的优势与使用
1) 优势
+ 分层结构
+ 关注点分离
+ 更明确的层级调用
2)投票Demo的三层实现解说
3)TDD下简单接口开发实践
+ 阅后即焚功能场景
+ 先写单元测试
+ TDD下的三层实现
```
###2.3 自动加载和拦截器###
百度网盘 优酷视频
```
1)自动加载机制的活灵活用
2)定义自己的项目功能文件
3)使用拦截器过滤参数并且使用token验证请求
```
###2.4 自定义参数验证规则###
百度网盘 优酷视频
```
1)对getRules自定义参数验证规则
2)一个邮箱验证的小案例
```
###2.5 NotORM进阶细节使用###
百度网盘 优酷视频
```
1)方法补全
2)事务操作
```
###2.6 数据库读写分离以及多库使用###
百度网盘 优酷视频
```
1)数据库实现读写分离
2)实现跨库使用
```
###2.7 使用缓存###
百度网盘 优酷视频
```
1)使用缓存来实现缓存API请求结果
2)使用缓存来实现对数据库查询结果进行缓存
```
##3 实战教程##
###3.1 多项目多版本处理###
百度网盘 优酷视频
```
//TODO
```
###3.2 核心拓展介绍###
[百度网盘](http://pan.baidu.com/s/1gfnphuF) [优酷视频](http://v.youku.com/v_show/id_XMTUyODczNzEzMg==.html)
```
一、π框架中的扩展类库
1)扩展类库的简单介绍
+ 即插即用
+ 可重用的、业务无关的基础设施类库
+ 致力于与开源项目一起提供企业级的解决方案!
2)目前有哪些扩展类库
+ 23+个
二、如何使用扩展类库
1)使用步骤
+ 1、下载安装
+ 2、配置
+ 3、注册
+ 4、使用
2)扩展类库使用示例
+ Log4php日志
+ View视图渲染
三、如何开发、贡献扩展类库
+ 如何开发尚未提供的扩展类库
+ 如何分享
```
**官网QQ交流群:421032344 欢迎大家的加入!**
- 欢迎使用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:接口文档参考模板