commit | author | age
|
90c639
|
1 |
#禾匠商城v4后台开发文档 |
Z |
2 |
|
|
3 |
##前置 |
|
4 |
|
|
5 |
开始开发前需要先掌握以下技术栈 |
|
6 |
|
|
7 |
- Linux基本命令使用、文件、进程管理、Nginx+PHP+MySQL+Redis环境配置 |
|
8 |
|
|
9 |
- PHP开发 |
|
10 |
|
|
11 |
- MySQL数据库 |
|
12 |
|
|
13 |
- Redis数据库 |
|
14 |
|
|
15 |
- [Yii框架](https://www.yiiframework.com/doc/guide/2.0/zh-cn) |
|
16 |
|
|
17 |
- [Vue](https://cn.vuejs.org/index.html) |
|
18 |
|
|
19 |
- [Element-UI](https://element.eleme.cn/#/zh-CN) |
|
20 |
|
|
21 |
- [Composer](https://getcomposer.org/doc/00-intro.md) |
|
22 |
|
|
23 |
##运行环境要求 |
|
24 |
|
|
25 |
Linux+Nginx+PHP7.2+MySQL(5.6|5.7)+Redis(4|5) |
|
26 |
|
|
27 |
|
|
28 |
##部署运行项目 |
|
29 |
|
|
30 |
###使用打包好的开源版代码包 |
|
31 |
|
|
32 |
1. 将代码解压到Nginx的web目录; |
|
33 |
2. 访问http://代码访问地址/将打开安装页面,按要求填写MySQL、redis信息、创建超级管理员的信息; |
|
34 |
3. 点击安装,将自动导入数据库结构和保存配置文件,可以在config目录下找到配置文件; |
|
35 |
4. 安装完成后登录商城后台,进入`设置`/`队列服务`,按要求启动队列服务,并测试通过; |
|
36 |
|
|
37 |
###快速上手案例 |
|
38 |
|
|
39 |
|
|
40 |
##代码说明 |
|
41 |
|
|
42 |
###目录说明 |
|
43 |
``` |
|
44 |
/condif #配置文件 |
|
45 |
/controllers #控制器 |
|
46 |
/events #事件定义类 |
|
47 |
/forms #表单处理 |
|
48 |
/handlers #事件处理 |
|
49 |
/jobs #队列任务 |
|
50 |
/models #数据库表模型 |
|
51 |
/plugins #插件 |
|
52 |
/validators #自定义验证器 |
|
53 |
/views #视图文件 |
|
54 |
/web #入口文件、资源文件 |
|
55 |
``` |
|
56 |
|
|
57 |
###开发调试模式 |
|
58 |
|
|
59 |
要开启开发调试模式,可在项目根目录下创建`.env`配置文件,写入内容 |
|
60 |
|
|
61 |
```.env |
|
62 |
YII_DEBUG=true |
|
63 |
YII_ENV=dev |
|
64 |
``` |
|
65 |
|
|
66 |
###Yii Application调整 |
|
67 |
|
|
68 |
继承并调整了Yii Application类的部分代码,见文件`core/WebApplication.php`、`core/ConsoleApplication.php` |
|
69 |
|
|
70 |
###队列服务 |
|
71 |
|
|
72 |
使用Redis做存储数据库,Yii组件方式调用`Yii:$app->queue`,详细api见文档[yii2-queue](https://github.com/yiisoft/yii2-queue) |
|
73 |
|
|
74 |
*用到的地方* |
|
75 |
|
|
76 |
- 订单处理时保证单线程处理 |
|
77 |
|
|
78 |
- 定时任务功能 |
|
79 |
|
|
80 |
*队列服务管理* |
|
81 |
|
|
82 |
默认启动方式是`./yii queue/listen 1`,但是只能前台运行,所以编写了一段shell脚本让服务进入后台运行,见脚本`./queue.sh`,脚本中自动写入系统的crontab,自动检测进程是否挂掉,挂掉将自动重启。 |
|
83 |
|
|
84 |
服务进入后台运行后可以使用`ps -ef | grep "yii queue" | grep -v grep`命令检查服务是否在运行 |
|
85 |
|
|
86 |
因为服务是基于Yii Console运行的,要检查队列运行情况可查看日志文件`runtime/logs/app.log`,服务没启动成功都可以检查日志文件 |
|
87 |
|
|
88 |
*注意事项* |
|
89 |
|
|
90 |
如果使用到负载均衡,队列服务只能在一台服务器上运行! |
|
91 |
|
|
92 |
###插件开发 |
|
93 |
|
|
94 |
###支付 |
|
95 |
|
|
96 |
###后台菜单 |
|
97 |
|
|
98 |
###下单 |