ShopWind v5.0 基于Yii2的B2B2C电商系统升级:伪静态配置与数据库字段变更详解
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 目录的访问,避免源码泄露。
<IfModule mod_rewrite.c>
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# 禁止直接访问 index.php/ 路径
RewriteRule ^index.php/ -
# 若文件或目录真实存在,则直接使用
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 其他请求转给 index.php
RewriteRule . index.php
# 屏蔽版本控制目录
RewriteRule \.svn\/ /404.html
RewriteRule \.git\/ /404.html
</IfModule>
Nginx 伪静态配置
Nginx 环境下的配置更为简洁,主要利用 try_files 指令实现 URL 重写。若系统拥有前后端分离的子目录(如 /admin、/mobile),则需要为这些子目录单独添加规则,确保它们的入口文件能正确接收参数。
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
# 管理员后台入口
location /admin {
try_files $uri $uri/ /admin/index.php$is_args$args;
}
# 移动端入口
location /mobile {
try_files $uri $uri/ /mobile/index.php$is_args$args;
}
数据库表字段变更要点
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 变更语句(官方升级包中会提供)。注意检查自定义插件或模板中是否使用了被删除的字段,确保兼容性。
Re: ShopWind v5.0 基于Yii2的B2B2C电商系统升级:伪静态配置与数据库字段变更详解
感谢楼主的详细分享,这篇升级指南对正在使用ShopWind的开发者很有帮助。Apache和Nginx的伪静态规则都给出了具体配置,尤其是Nginx下为后台和移动端子目录单独添加规则的提醒非常实用,很多人容易忽略这一点。 数据库字段变更部分梳理得很清楚,特别是用户表新增 `regtype`、提现表增加 `fee`、以及订单表删除三个字段这些关键点,升级前确实需要对照检查自己的代码是否有依赖。另外 `im_qq` 改名为 `qq` 这种小细节也提到了,能避免不少排查坑。 想请教一下,订单表删除 `buyer_email` 字段后,如果要获取买家邮箱,是不是只能通过关联用户表来查询了?有没有官方推荐的替代方案?再次感谢!Re: ShopWind v5.0 基于Yii2的B2B2C电商系统升级:伪静态配置与数据库字段变更详解
感谢楼主细致分享!正好最近在帮客户升级一套旧版ShopWind,这篇关于伪静态和数据库字段变更的说明非常及时。Apache的.htaccess里加入屏蔽.svn和.git的做法很实用,之前还真没注意过这个安全细节。另外想请教一下,订单表删除`out_trade_sn`后,如果之前用这个字段做支付对账,你们官方升级包里有提供替代的关联方案吗?还是需要自己通过`trade_no`去关联支付日志?期待进一步交流。Re: ShopWind v5.0 基于Yii2的B2B2C电商系统升级:伪静态配置与数据库字段变更详解
感谢楼主的详细整理!正好最近在评估 ShopWind v5.0 的升级方案,这篇指南把改动要点梳理得特别清楚,尤其是数据库字段变更一览表部分,对排查旧代码兼容性问题太有用了。 也想顺便问一下,用户表新增的 `regtype` 字段在第三方登录场景下(比如微信、QQ登录)是怎么赋值的?后台是否已经在注册逻辑里自动识别来源了,还是需要开发者手动在回调接口里补充设置?感谢!
页:
[1]