# 视频后端 项目 ## 技术 此项目采用[Hyperf2.2](https://hyperf.wiki/2.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开房初始化 ```sql 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文件 ```shell cp .env.example .env ``` 3. 安装依赖 ```shell 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下的私有仓库 ## 命令行 ```shell # 安装基础包 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 ``` ### 工具命令 ```shell # 查看队列信息 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