代理后台

kenan 0ab860990f falst преди 1 година
Modules 0ab860990f falst преди 1 година
app 0ab860990f falst преди 1 година
bootstrap 0ab860990f falst преди 1 година
config 0ab860990f falst преди 1 година
database 0ab860990f falst преди 1 година
deploy 0ab860990f falst преди 1 година
private_vendor 0ab860990f falst преди 1 година
public 0ab860990f falst преди 1 година
resources 0ab860990f falst преди 1 година
routes 0ab860990f falst преди 1 година
storage 0ab860990f falst преди 1 година
tests 0ab860990f falst преди 1 година
vendor 0ab860990f falst преди 1 година
.DS_Store 0ab860990f falst преди 1 година
.gitignore cb614550c7 Initial commit преди 1 година
README.md 0ab860990f falst преди 1 година
_ide_helper.php 0ab860990f falst преди 1 година
artisan 0ab860990f falst преди 1 година
composer.json 0ab860990f falst преди 1 година
composer.lock 0ab860990f falst преди 1 година
package.json 0ab860990f falst преди 1 година
phpunit.xml 0ab860990f falst преди 1 година
server.php 0ab860990f falst преди 1 година
webpack.mix.js 0ab860990f falst преди 1 година

README.md

多应用代理系统

技术

环境依赖

  • php8.0
  • composer
  • ext-BCMath
  • ext-Ctype
  • ext-JSON
  • ext-Mbstring
  • ext-OpenSSL
  • ext-PDO
  • ext-Tokenizer
  • ext-XML
  • ext-redis
  • ext-mongodb

项目初始化步骤

  1. 下载laravel指定版本 https://github.com/laravel/laravel/archive/refs/tags/v6.20.1.zip
  2. 安装laravel依赖

    composer install -vvv
    
  3. 复制本地.env文件

    cp .env.example .env
    
  4. 生产laravel 密钥

    php artisan key:generate
    
    5. .gitignore 追加忽略
    6. 安装本地开发工具barryvdh/laravel-ide-helper
    

    shell

composer require --dev "barryvdh/laravel-ide-helper:v2.8.2" -vvv


9. 修改app/Providers/AppServiceProvider.php,注册启动时根据环境启用laravel-ide-helper

php

public function register()

{
    if ($this->app->isLocal()) {
        $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
}

10. 安装其他扩展包

shell composer require "zhuzhichao/ip-location-zh:^2.4" -vvv composer require "jenssegers/mongodb:^3.6" -vvv composer require "intervention/image" -vvv composer require "christian-riesen/otp:^2.7" -vvv

https://github.com/vinkla/hashids

composer require "hashids/hashids" -vvv composer require guzzlehttp/guzzle -vvv composer require lcobucci/jwt:4.1.5 -vvv composer require overtrue/laravel-pinyin -vvv composer require "jacobcyl/ali-oss-storage:^2.1" -vvv

https://docs.laravel-excel.com/3.1/getting-started/installation.html

composer require "maatwebsite/excel:^3.1" -vvv

https://github.com/mewebstudio/captcha

composer require "mews/captcha" -vvv

11. 执行数据库初始化.

shell php artisan migrate:install php artisan cache:table php artisan notifications:table php artisan queue:table php artisan session:table

最后migrate:fresh, 根据migration生成sql数据库相关表

php artisan migrate:fresh php artisan ide-helper:generate php artisan ide-helper:meta

php artisan vendor:publish --tag="cors"

php artisan vendor:publish --provider='Mews\Captcha\CaptchaServiceProvider'


## 本地调试服务

shell php artisan serve --host=0.0.0.0 --port=8601

本地处理异步队列.

php artisan queue:listen

权限管理DB更新.

php artisan permission:resource ```

规范

代码命名规范

  1. 必须使用SANGUO 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/
  4. 【每次】rm -f ./composer.lock
  5. 【每次】composer install -vvv
  6. 【第一次】确认.env 中的QUEUE_CONNECTION=redis
  7. 【第一次】在计划任务www-data里增加 * * * * * /usr/local/bin/php /var/www/agent_server/artisan schedule:run >> /dev/null 2>&1
  8. 【第一次】在supervisor配置里增加 /usr/local/bin/php /var/www/agent_server/artisan queue:work --daemon --sleep=1 --tries=1, 是user=www-data

测试说明

提前准备

  1. redis 清空
  2. mongo 相关集合清空
  3. mysql 数据初始化 (full -> backup -> full)

  4. 造数据 php -d memory_limit=100M artisan db:seed --class=GenerateTestSeeder

  5. 统计1 php artisan statistics:pay --date=2021-08-01 php artisan statistics:new_users --date=2021-08-01 php artisan statistics:active --date=2021-08-01 php artisan statistics:users_attrs --date=2021-08-01

  6. 统计2 php artisan statistics:users_attrs_today --date=2021-08-01