Download the PHP package jhq0113/roach-rest-app without Composer
On this page you can find all versions of the php package jhq0113/roach-rest-app. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download jhq0113/roach-rest-app
More information about jhq0113/roach-rest-app
Files in jhq0113/roach-rest-app
Package roach-rest-app
Short Description roach-rest-app
License MIT
Homepage https://github.com/jhq0113/roach-rest-app
Informations about the package roach-rest-app
roach-rest示例应用
使用方式
目录
- 1. 目录结构介绍
- 2. 部署
- 3. rest接口示例应用
- 4. 添加模块
- 5. 路由
- 5.1 项目默认路由规则如下
- 5.2 自定义路由
- 6. Controller
- 6.1 REQUEST_METHOD控制
- 6.2 控制器生命周期
- 7. 应用生命周期
- 8. console应用
- 9. 多环境管理
- 9.1 环境选择
- 9.2 配置选择
- 10. 使用orm
- 11. 异常错误处理
目录结构介绍
回到目录
部署
nginx
部署server
示例
回到目录
rest接口示例应用
rest接口示例代码文件为
rest/modules/v1/controllers/ProductController.php
在项目根目录有个
product-test.php
文件,里面编写了默认rest接口的测试调用,如果您使用的是phpstorm
IDE的话,可以直接使用
回到目录
添加模块
添加自定义模块分为以下几步
- a.在
modules
目录添加模块目录,如:v2
-
b.在
v2
目录中添加类文件Module.php
,内容如下 - c.在
v2
目录中添加目录controllers
-
d.在
controllers
目录添加模块基类Controller.php
文件,内容如下 - e.在
controllers
目录添加业务控制器,如:ProductController.php
,使之继承刚刚创建的控制器,具体业务代码可以参考示例控制器
回到目录
路由
项目默认路由规则如下
REQUEST_URI | 解析规则 |
---|---|
/word1 | word1解析为controller |
/word1/word2 | word1解析为controller,word2解析为action |
/word1/word2/word3 | word1解析为module,word2解析为controller,word3解析为action |
/word1/word2/word3/word4?word5=word6 | word1解析为module,word2解析为controller,word3解析为action,word4不会解析,word5为参数key,word6为参数值 |
自定义路由
项目路由类为
roach\rest\Router
,如果系统路由不能满足您的需要,我们可以自己实现一个路由,步骤如下
- a.创建路由类
NewRouter.php
,使之继承roach\rest\base\IRouter
,并实现相关逻辑 - b.更改配置
回到目录
Controller
REQUEST_METHOD控制
每个action的
REQUEST_METHOD
的控制是靠Controller
中actionMethodMap
属性控制的,如下
控制器生命周期
控制器有
before
和after
两个钩子方法,以下是控制器执行流程注意:
- a.
before
方法返回false
时,action
不会再执行,只有当before
方法返回true
时action
才会执行 - b.
action
方法执行完毕后的结果会传递给after
方法,after
方法可以对action
执行的数据结果做统一后续处理
回到目录
应用生命周期
注意
- a.
Module
的before
方法会返回一个bool值,当返回false时,Controller
的before
方法以及后续流程不会再执行 - b.
Controller
的before
方法会返回一个bool值,当返回false时,Controller
的action以及后续流程不会再执行 - c.
Controller
的after
方法将action
方法返回值作为第一个参数,可以对action
的数据结果做Controller
级别统一处理 - d.
Module
的after
方法将Controller
的after
方法的返回值作为第一个参数,可以对action
的数据结果做Module
级别统一处理
回到目录
console应用
console应用是一个控制台应用,位于
console
目录console应用默认不使用模块,也可以参考
rest
应用添加模块应用console应用路由规则与
rest
应用路由规则一致console应用如果由
cron
定时任务执行,注意标注输出和错误输出异常,默认不进行输出可以通过
roach\extensions\ECli::params()
来获取参数
回到目录
多环境管理
环境选择
roach-rest
的环境选择配置在php.ini
中,如下代码中我们可以通过调用
roach\extensions\EEnvir::envir
方法获取环境配置值
配置选择
- a. 项目有公用配置,配置文件为
common/config/config.php
,为多个应用共享配置 - b. 项目各个应用有应用配置,应用配置是根据环境选择的,如
rest/config/develop.php
是应用开发环境的配置 - c. 应用配置文件会覆盖公用配置
回到目录
使用orm
roach-rest并未提供
orm
支持,开发者可以自行选择基于composer
的orm
组件,例如roach-orm
-
a.编辑
composer.json
文件,添加roach-orm
组件 -
b.执行
composer update
,待安装完毕可以 - c.在
common
目录中增加models
目录用于存放Model
类,具体使用方式可以参考roach-orm
使用方式
https://github.com/jhq0113/roach-orm
回到目录
异常错误处理
roach-rest对异常和错误做了统一处理,当项目运行时触发了未被
try...catch
捕捉的异常时,会统一交由errorHandler
组件处理,配置如下
roach-rest
提供了一个handler
,封装在common\ErrorHandler::handler
,开发者可以根据自己需要进行扩展
回到目录