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