关于最近两个月开发的总结

最近两个多月,都是在用laravel5.7进行公司的api接口开发,期间遇到不少坑

1、composer引入类库:dingo/api ,tymon/jwt-auth
需要封装一下自己的错误捕捉机制,自定义不同的错误输出;前后端授权需要有明确的区别字段

'token' => JWTAuth::customClaims([
                            'admin_id' => $admin['id']
                        ])->fromUser($admin)

2、注意配置不同的环境配置,不直接访问环境变量,通过config文件下的配置进行再次封装,然后通过config(‘xx’)进行值的获取
.env.local
.env.development
.env.staging
.env.production

3、引入阿里的短信sdk,有的号码无法发送短信,可能是那种网络公用号码,已被阿里拉黑,需要添加到白名单才能仅需发送信息

4、资源服务可以用阿里的oss,还提供免费的带ssl证书的链接

5、阿里除了给主域配一个免费的ssl证书,还可以在证书管理中心,进行子域证书申请,也是免费的,有效期一年

6、阿里的oss支持文件夹概念

7、阿里的oss不要使用超管账户的key和secret进行任何操作,新建用户,然后用户归属角色组,然后配置角色组权限

8、app端需要上传资源时,颁发一个临时授权证书给该端,不直接返回任何敏感信息key+secret

9、注意opcache的缓存时效

10、mysql进行距离定位,很友好,可以实现多元化排序,distance默认的英里,英里乘以1609.3转换为米
SELECT SQRT(
POW(69.1 * (lat – {$userSetting[‘lat’]}), 2) +
POW(69.1 * ({$userSetting[‘lng’]} – lng) * COS(lat / 57.3), 2))*1609.3 AS distance
FROM sx_user_setting join sx_user on sx_user_setting.user_id = sx_user.id
HAVING distance < 20000 ORDER BY distance ASC limit {$offset},10 11、使用mysqldump时,设计到数据导出,需要根据数据的字符集来指定 例如:default-character-set=utf8mb4 12、做文件日志,对数组进行json_encode()时,指定参数 JSON_UNESCAPED_UNICODE

Leave Comment

电子邮件地址不会被公开。 必填项已用*标注