# 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.jsonapipost.md, 通过apipost.md可以知道如何使用apipost (opens new window)

# 自定义模版

注意

除了有准备好的stub模版,在项目不同模块目录下也分别准备了*.php.example的模版,目地就是为了方便开发过程中参考和复制修改

# 路由

  • 路由

注意

建议参考laravel-fast-api的路由进行开发,按照功能和模块划分出不同的路由文件,开发阶段可以使用Route::any定义,等到项目开发完成以后,再根据需要区分getpost

# 控制器

开发思路:

控制器用来过滤参数和权限验证,总体来说控制器只负责接收和处理参数,真正的业务逻辑放在门面代理的服务层实现.如果业务逻辑复杂有两种实现方案

  • 第一种:

门面代理的服务层负责主要业务逻辑实现,其他因此产生的关联业务逻辑放在相关事件中去实现

  • 第二种:

用不同的门面去处理不同模块的业务逻辑,在控制器内返回和传递处理的数据

Last Updated: 3/8/2025, 7:32:20 AM