视频站服务端

kenan 43e7c63854 up 1 gadu atpakaļ
Modules 43e7c63854 up 1 gadu atpakaļ
app 43e7c63854 up 1 gadu atpakaļ
bin 44eb509004 up 1 gadu atpakaļ
config 44eb509004 up 1 gadu atpakaļ
deploy 81e1771dec Refresh .gitignore 1 gadu atpakaļ
private_vendor 44eb509004 up 1 gadu atpakaļ
public 44eb509004 up 1 gadu atpakaļ
routes 43e7c63854 up 1 gadu atpakaļ
storage 43e7c63854 up 1 gadu atpakaļ
test 44eb509004 up 1 gadu atpakaļ
.env.example d2eaa04652 添加配置 1 gadu atpakaļ
.gitignore 81e1771dec Refresh .gitignore 1 gadu atpakaļ
Dockerfile 44eb509004 up 1 gadu atpakaļ
README.md 43e7c63854 up 1 gadu atpakaļ
composer.json 44eb509004 up 1 gadu atpakaļ
deploy.test.yml 44eb509004 up 1 gadu atpakaļ
phpstan.neon 44eb509004 up 1 gadu atpakaļ
phpunit.xml 44eb509004 up 1 gadu atpakaļ

README.md

视频后端 项目

技术

此项目采用Hyperf2.2.

环境依赖

  • php8.0+
  • swoole4.6+
  • composer
  • ext-BCMath
  • ext-Ctype
  • ext-GD
  • ext-JSON
  • ext-Mbstring
  • ext-OpenSSL
  • ext-PDO
  • ext-Tokenizer
  • ext-XML
  • ext-redis
  • ext-mongodb
  • ext-pdo_mysql
  • ext-msgpack
  • ext-pcntl

部署

.env APP_ENV=prod 表示生产环境.(hyperf约定prod)

  1. 【第一次】cp .env.example .env
  2. 【第一次】修改好.env里的配置
  3. 【第一次】mkdir ./runtime/logs && chmod -R 777 ./runtime ./storage
  4. 【每次】rm -f ./composer.lock
  5. 【每次】composer install -vvv

mongo开房初始化

db.createCollection("hotel_log");

db.getCollection("hotel_log").createIndex({
    "ct_fid": NumberInt("1")
}, {
    name: "ct_fid_1"
});

db.getCollection("hotel_log").createIndex({
    "ct_type": NumberInt("1")
}, {
    name: "ct_type_1"
});

项目初始化步骤

  1. 下载指定版本 https://github.com/hyperf/hyperf-skeleton/archive/refs/tags/v2.2.2.zip
  2. 复制本地.env文件

    cp .env.example .env
    
  3. 安装依赖

    composer install -vvv
    
  4. .gitignore 追加忽略

  5. 不启用的服务器在composer.json里删除,比如 "hyperf/amqp": "~2.2.0",

重要提示注意

  1. 避免使用composer update命令,这会造成团队各人员composer.lock代码冲突! 推荐使用composer install
  2. swoole 有上下文业务的,严禁使用单例
  3. 没有必要情况,避免使用注解
  4. 没允许情况下,禁止修改private_vendor下的私有仓库

命令行

# 安装基础包
composer require hyperf/crontab:~2.2.0 -vvv
composer require hyperf/translation:~2.2.0 -vvv
composer require hyperf/validation:~2.2.0 -vvv
composer require --dev "hyperf/watcher" -vvv
composer require "lmz/hyperf-mongodb:2.2.1" -vvv
composer require "lcobucci/jwt:4.1.5" -vvv
composer require hyperf/paginator:~2.2.0 -vvv
composer require hyperf/amqp:~2.2.0 -vvv

# 发布组件配置(git仓库代码已经有了,这里只是记录初始化过程的命令)
php bin/hyperf.php vendor:publish hyperf/translation
php bin/hyperf.php vendor:publish hyperf/validation
php bin/hyperf.php vendor:publish hyperf/watcher
php bin/hyperf.php vendor:publish lmz/hyperf-mongodb
php bin/hyperf.php vendor:publish hyperf/config-cente

工具命令

# 查看队列信息
queue:info default
# 仅仅清空队列中集合queue:failed
queue:flush
# 重新把超时的队列,重新处理一次
queue:reload default --queue=timeout

# 当后台控制器或者方法有变动,需要重新更新权限资源,用此命令进行更新
  1. 先手动修改 /storage/languages/zh_CN/permission.php  这个语言包,把你后台对应的模块,方法名,中文意思写上!

  2. 运行以下命令(会往mysql permission_resource表追加数据)
php bin/hyperf.php permission:resource

  3。以上2步执行后,后台在创建角色信息时,才有对应的权限菜单列表。 ( 注意 若仅直接修改数据库的内容 是无效的, 需要2边都对应 )
     这是一种语言包 设计理念,  最终目标便于h5后端分配角色组的权限菜单集!

其他备注

  1. 新增加目录和文件:app/Constants, app/Helpers, app/Contracts, app/Exception/ApiExceptionm, app/Middlewares, Modules/, storage/languages, routes/api.php
  2. 使用自定义异常处理API App\Exception\ApiException