查看: 223|回复: 1

ShopWind v5.0 基于Yii2的B2B2C电商系统升级:伪静态配置与数据库字段变更详解

[复制链接]
发表于 9 小时前 | 显示全部楼层 |阅读模式
ShopWind 是一款基于 Yii2.0 框架深度重构的开源 B2B2C 电商系统,最新 v5.0 版本在环境兼容性与数据层逻辑上做了多项调整。本文从开发者视角梳理伪静态配置要点以及数据库表结构的核心变更,帮助你在升级或二次开发时快速适配。

运行环境要求
ShopWind v5.0 继续沿用 PHP 7.2+ 与 MySQL 5.6+ 的底层依赖,支持 Nginx、Apache 或 IIS 服务器。部署时推荐使用阿里云 ECS 配合宝塔面板,可简化环境搭建流程。

Apache 伪静态规则
如果使用 Apache 服务器,需要在网站根目录下创建 .htaccess 文件,并写入以下规则。这段配置通过 mod_rewrite 模块将非真实文件或目录的请求转发到 index.php,同时拦截对 .svn 和 .git 目录的访问,避免源码泄露。
  1. <IfModule mod_rewrite.c>
  2. Options +FollowSymLinks
  3. IndexIgnore */*
  4. RewriteEngine on
  5. # 禁止直接访问 index.php/ 路径
  6. RewriteRule ^index.php/ - [L,R=404]
  7. # 若文件或目录真实存在,则直接使用
  8. RewriteCond %{REQUEST_FILENAME} !-f
  9. RewriteCond %{REQUEST_FILENAME} !-d
  10. # 其他请求转给 index.php
  11. RewriteRule . index.php
  12. # 屏蔽版本控制目录
  13. RewriteRule \.svn\/ /404.html
  14. RewriteRule \.git\/ /404.html
  15. </IfModule>
复制代码

Nginx 伪静态配置
Nginx 环境下的配置更为简洁,主要利用 try_files 指令实现 URL 重写。若系统拥有前后端分离的子目录(如 /admin、/mobile),则需要为这些子目录单独添加规则,确保它们的入口文件能正确接收参数。
  1. location / {
  2.     try_files $uri $uri/ /index.php$is_args$args;
  3. }
  4. # 管理员后台入口
  5. location /admin {
  6.     try_files $uri $uri/ /admin/index.php$is_args$args;
  7. }
  8. # 移动端入口
  9. location /mobile {
  10.     try_files $uri $uri/ /mobile/index.php$is_args$args;
  11. }
复制代码

数据库表字段变更要点
v5.0 对用户、资产、订单等核心表做了字段调整,开发者需关注以下变更,避免业务逻辑报错。


  • 用户表 (user):新增字段 regtype,用于标记用户注册来源。取值范围:MP 代表小程序用户,WAP 代表 H5 用户,APP 代表 APP 端用户。第三方快捷登录注册的用户名生成逻辑也已优化,同时用户头像的保存路径做了调整。
  • 资产提现表 (deposit_withdraw):新增字段 fee(手续费),并在提现确认 UI 中增加手续费显示。这要求后端在计算提现金额时引入手续费扣减逻辑。
  • 资产交易表 (deposit_trade):取消了原 tradeCat(交易分类)字段,改为使用 openid(支付用户标识)字段。后续与支付相关的业务逻辑需依赖 openid 进行身份匹配。
  • 订单表 (order):删除了 out_trade_sn、buyer_email、pay_message 三个字段。如果之前有依赖这些字段的查询或报表,需要调整代码,改用其他字段(如 trade_no)或关联其他表。


此外,店铺表(store)和用户表中 im_qq 字段已更名为 qq,以保持命名统一。订单表中门店自提订单的提货人数据初始化逻辑也做了优化,避免提货信息为空的情况。

其他开发注意事项

  • 电脑端用户中心首页新增昵称修改入口,开发者需确保接口与前端展示一致。
  • 商家中心导出订单 EXCEL 功能已支持电脑端,导出格式为标准的 Excel 文件。
  • 移动端商品详情字段逻辑已与电脑端同步,修复了之前商品详情不显示的问题。
  • 第三方登录插件未安装时,登录页会给出提示,避免用户误操作。
  • 修复了分销商中心可分销列表中出现已下架或已禁售商品的问题,需在数据查询时增加商品状态过滤。


在升级到 v5.0 时,建议先备份数据库和代码,然后逐一执行 SQL 变更语句(官方升级包中会提供)。注意检查自定义插件或模板中是否使用了被删除的字段,确保兼容性。
回复

使用道具 举报

发表于 9 小时前 | 显示全部楼层

Re: ShopWind v5.0 基于Yii2的B2B2C电商系统升级:伪静态配置与数据库字段变更详解

感谢楼主的详细分享,这篇升级指南对正在使用ShopWind的开发者很有帮助。Apache和Nginx的伪静态规则都给出了具体配置,尤其是Nginx下为后台和移动端子目录单独添加规则的提醒非常实用,很多人容易忽略这一点。 数据库字段变更部分梳理得很清楚,特别是用户表新增 `regtype`、提现表增加 `fee`、以及订单表删除三个字段这些关键点,升级前确实需要对照检查自己的代码是否有依赖。另外 `im_qq` 改名为 `qq` 这种小细节也提到了,能避免不少排查坑。 想请教一下,订单表删除 `buyer_email` 字段后,如果要获取买家邮箱,是不是只能通过关联用户表来查询了?有没有官方推荐的替代方案?再次感谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-9 23:50 , Processed in 0.031978 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部