# laravel-fast-apis上手开发篇
注意
建议在实际开发中可以参照laravel-fast-api,组件化开发自己的业务逻辑.这样便于后续维护以及扩展
# 自定义门面代理和门面服务命令
生成门面代理以及门面服务(Generate a facade agent and a facade service)
php artisan call:facade 路径/名称
示例(for example):
php artisan call:facade Test/TestFacade
执行完成以后会提示门面代理和和门面服务创建成功
# 内置助手函数
函数名称 | 参数说明 | 返回值说明 | 函数作用说明 |
---|---|---|---|
p($param) | $param : 要打印的参数(任意类型) | 无返回值 | 格式化输出参数便于调试 |
plog($data, $type = 'common') | $data : 要记录的数据(任意类型)$type : 日志文件名(默认'common') | 无返回值 | 手动记录事件日志 |
f($param, $type = 0) | $param : 输入字符串/数组$type : 0=转HTML实体,1=去HTML标签 | 过滤后的字符串/数组 | 过滤HTML标签 |
code($code = [], $add = []) | $code : 配置代码定义$add : 手动添加数据 | 合并后的数组 | 处理请求返回数据 |
convertToString($data) | $data : 数组/对象/Eloquent模型 | 转换后的字符串 | 序列化模型或JSON编码其他类型 |
is_serialized($data) | $data : 需检测的字符串 | true /false | 判断是否为序列化数据 |
httpGet($url) | $url : 请求地址 | 请求结果 | 发起GET请求 |
httpPost($url, $headers = [], $data = null) | $url : 请求地址$headers : 请求头$data : 请求数据 | 请求结果 | 发起POST请求 |
array_level(array $arr) | $arr : 输入数组 | 数组维度 | 计算数组层级 |
toArray($array) | $array : 输入数组 | 转换后的数组 | 转换数组元素 |
showTime($time, $bool = false) | $time : 时间戳$bool : 是否含时分秒 | 日期字符串 | 时间戳格式化 |
em(\Throwable $e, $log = false, $notification = false) | $e : 异常对象$log : 是否记录日志$notification : 是否通知 | 格式化异常信息 | 异常处理与通知 |
checkId($id) | $id : 待检查值 | 有效ID或0 | 验证ID有效性 |
price($price) | $price : 需格式化的价格 | 两位小数价格字符串 | 价格标准化 |
# 添加自定义助手函数
config\help.php
已经准备好了该文件, 只需要添加自定义函数即可
# 接口文档
Documents
发布命令执行完成以后,会有Documents目录生成, 里面存放着接口文档 apipost.json
和apipost.md
, 通过apipost.md
可以知道如何使用apipost (opens new window)
# 自定义模版
注意
除了有准备好的stub模版,在项目不同模块目录下也分别准备了*.php.example
的模版,目地就是为了方便开发过程中参考和复制修改
# 路由
- 路由
注意
建议参考laravel-fast-api的路由进行开发,按照功能和模块划分出不同的路由文件,开发阶段可以使用Route::any
定义,等到项目开发完成以后,再根据需要区分get
和post
# 控制器
开发思路:
控制器用来过滤参数和权限验证,总体来说控制器只负责接收和处理参数,真正的业务逻辑放在门面代理的服务层实现.如果业务逻辑复杂有两种实现方案
- 第一种:
门面代理的服务层负责主要业务逻辑实现,其他因此产生的关联业务逻辑放在相关事件中去实现
- 第二种:
用不同的门面去处理不同模块的业务逻辑,在控制器内返回和传递处理的数据