#禾匠商城v4后台开发文档 ##前置 开始开发前需要先掌握以下技术栈 - Linux基本命令使用、文件、进程管理、Nginx+PHP+MySQL+Redis环境配置 - PHP开发 - MySQL数据库 - Redis数据库 - [Yii框架](https://www.yiiframework.com/doc/guide/2.0/zh-cn) - [Vue](https://cn.vuejs.org/index.html) - [Element-UI](https://element.eleme.cn/#/zh-CN) - [Composer](https://getcomposer.org/doc/00-intro.md) ##运行环境要求 Linux+Nginx+PHP7.2+MySQL(5.6|5.7)+Redis(4|5) ##部署运行项目 ###使用打包好的开源版代码包 1. 将代码解压到Nginx的web目录; 2. 访问http://代码访问地址/将打开安装页面,按要求填写MySQL、redis信息、创建超级管理员的信息; 3. 点击安装,将自动导入数据库结构和保存配置文件,可以在config目录下找到配置文件; 4. 安装完成后登录商城后台,进入`设置`/`队列服务`,按要求启动队列服务,并测试通过; ###快速上手案例 ##代码说明 ###目录说明 ``` /condif #配置文件 /controllers #控制器 /events #事件定义类 /forms #表单处理 /handlers #事件处理 /jobs #队列任务 /models #数据库表模型 /plugins #插件 /validators #自定义验证器 /views #视图文件 /web #入口文件、资源文件 ``` ###开发调试模式 要开启开发调试模式,可在项目根目录下创建`.env`配置文件,写入内容 ```.env YII_DEBUG=true YII_ENV=dev ``` ###Yii Application调整 继承并调整了Yii Application类的部分代码,见文件`core/WebApplication.php`、`core/ConsoleApplication.php` ###队列服务 使用Redis做存储数据库,Yii组件方式调用`Yii:$app->queue`,详细api见文档[yii2-queue](https://github.com/yiisoft/yii2-queue) *用到的地方* - 订单处理时保证单线程处理 - 定时任务功能 *队列服务管理* 默认启动方式是`./yii queue/listen 1`,但是只能前台运行,所以编写了一段shell脚本让服务进入后台运行,见脚本`./queue.sh`,脚本中自动写入系统的crontab,自动检测进程是否挂掉,挂掉将自动重启。 服务进入后台运行后可以使用`ps -ef | grep "yii queue" | grep -v grep`命令检查服务是否在运行 因为服务是基于Yii Console运行的,要检查队列运行情况可查看日志文件`runtime/logs/app.log`,服务没启动成功都可以检查日志文件 *注意事项* 如果使用到负载均衡,队列服务只能在一台服务器上运行! ###插件开发 ###支付 ###后台菜单 ###下单