#支付中心
区块链支付-Laravel6
技术
环境依赖
- php8.0
- composer
- ext-BCMath
- ext-Ctype
- ext-JSON
- ext-Mbstring
- ext-OpenSSL
- ext-PDO
- ext-Tokenizer
- ext-XML
- ext-redis
项目初始化步骤
- 下载laravel指定版本 https://github.com/laravel/laravel/archive/refs/tags/v6.20.1.zip
安装laravel依赖
composer install -vvv
复制本地.env文件
cp .env.example .env
生产laravel 密钥
php artisan key:generate
5. .gitignore 追加忽略
public function register()
{
if ($this->app->isLocal()) {
$this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
}
}
本地调试服务
php artisan serve --host=0.0.0.0 --port=8601
# 本地处理异步队列.
php artisan queue:listen
# 权限管理DB更新.
php artisan permission:resource
规范
代码命名规范
- 必须使用AMZN CodeSniffer检测脚本,进行代码PSR-2规范
- 目录、文件命名,必须满足PSR-4规范
- Windows下,由于同文件或者目录名大小写书写错误,请重写不同命名进行2次commit提交
- 所有代码文件,文件编码必须是utf-8,其次换行符标准LF(
Mac/Linux \n )
- 业务代码逻辑相对复杂的,约定要用注释写清楚关键信息.
- 所有方法,尽可能注释详细(名称、类型、备注等)
.env规范
- .env.example,所有增加的变量,都必须先放这里
- 不能存放自己开发、测试、生产环境的env提交到git
数据库规范
- 数据库名、表名、字段名等,必须使用蛇形半角小写风格。例如
prefix_order_logs
- 数据库表业务设计必须遵从,禁止超过3张表关联
- MySql数据库统一引擎InnoDB,字符集
utf8mb4,字符编码utf8mb4_unicode_ci
- 生产环境数据库账号信息,务必独立分配账号和归属schema,禁止使用root等超级用户权限.
- MySql时间类型字段,统一使用
datetime(0),存储时间格式Y-m-d H:i:s
- 业务有对外暴露的ID,务必设计成 自增ID+自定义唯一ID,禁止暴露吐出自增ID.
- MySql增量sql,请放置在
storage/sql/inc/目录下,命名规则[database name]_inc_[日期Y-m-d].sql
接口规范
- 返回数据各下标节点名,一律使用蛇形半角小写风格.
- 规避返回无效(没有被使用)的字段以及数据.在业务层处理过滤.
- 不需要严格按照RESTFUL接口方法约定规范,但如果是http-api模式,除了特殊接口,一律统一使用post请求方法.
- 所有接口必须提交到Yapi平台,测试通过后,勾选状态完成可用.
项目特殊
部署
- 【第一次】cp .env.example .env
- 【第一次】修改好.env里的配置
- 【第一次】chmod -R 777 ./public/attachment ./storage/ ./bootstrap/
- 【每次】rm -f ./composer.lock
- 【每次】composer install -vvv
- 【第一次】确认.env 中的
QUEUE_CONNECTION=redis
- 【第一次】 导入 storage/sql/all_inc.sql 库
计划任务
- * * * * /usr/local/bin/php /var/www/pay_center_server/artisan order:status-expired > /tmp/load.log 2>&1 &