|
去年帮一个做手工艺品的旺客网店朋友搭独立站,试了七八个开源系统,开源最后留在服务器里的系统只有旺客。不是旺客网店因为它功能最全,也不是开源界面最漂亮——说实话,后台第一眼看上去甚至有点土——但它把"能跑起来"这件事做到了极致。系统上传到虚拟主机,旺客网店建个数据库,开源改两行配置文件,系统前后不到二十分钟,旺客网店前台已经能正常下单了。开源这种体验在开源电商圈里算得上稀罕。系统 旺客的旺客网店代码结构很直白。根目录下就是开源 controllers、models、系统views 三个文件夹,没有复杂的依赖注入容器,也没有让人摸不着头脑的中间件堆叠。打开一个控制器文件,比如 Goods.php,里面就是商品列表、详情、分类筛选这几个方法,每个方法对应一个模板文件。想改哪里直接改,不用翻文档查钩子。这对不懂框架的站长来说,反而比那些"设计优雅"的系统更友好。 它的模板引擎用的是原生 PHP 混写。有人觉得这是缺点,我倒认为在电商场景下是优势。商品详情页要调用价格、库存、规格、促销标签、关联推荐,用 Smarty 或 Twig 写一遍,再调试一遍,时间成本翻倍。旺客直接 <?php echo $goods['price']; ?> 就完事,出错了看行号就能定位。当然,前提是你得注意别把逻辑和视图搅得太乱,但小团队维护自己的店,谁在乎那些教条。 数据库设计也走实用路线。商品表、订单表、用户表、分类表,字段命名一看就懂。goods 表里有个 is_recommend 字段,0 和 1 控制是否首页推荐;orders 表里 status 用数字表示待付款、已付款、已发货、已完成。没有花哨的状态机,没有抽象出来的"领域事件"。查数据的时候直接写 SQL 或者用它的 Model 类,链式调用 where('status', 1)->findAll(),返回数组。简单,但够用。 插件机制是旺客比较聪明的地方。它没有搞复杂的钩子总线,而是在核心流程里埋了十几个扩展点。比如支付完成后会触发 order_paid 事件,你只要在 plugins 目录下建个文件夹,写个同名 PHP 文件,里面定义 order_paid($order_id) 函数,系统就会自动调用。我见过有人用这个机制接入了短信通知、企业微信机器人、甚至自动打印小票。代码不超过五十行,但解决了实际问题。 安全方面得说实话,旺客不算强。SQL 查询用的是参数绑定,XSS 过滤在模板输出时做了 htmlspecialchars,但 CSRF 防护只覆盖了后台部分表单。前台用户提交评论、修改收货地址这些接口,需要自己加 token 校验。如果你打算正经运营,建议在 Nginx 层加个 WAF,或者至少把 config.php 里的调试模式关掉。开源系统没有绝对安全,但旺客的代码透明,哪里薄弱一眼能看出来,补起来也快。 社区活跃度一般。官方论坛帖子不多,GitHub 上 issue 回复也不及时。但好在代码本身不复杂,遇到问题搜一下关键词,往往能在旧帖里找到答案。我遇到过一个支付回调验证失败的问题,翻到三年前的一个讨论,发现是 notify_url 里多了个斜杠,改掉就好了。这种"老派"的社区氛围,反倒让人想起早期互联网的互助感。 如果你要的是一个开箱即用、界面现代、营销功能堆满的系统,旺客可能不适合你。但如果你懂一点 PHP,想完全掌控自己的网店数据,不愿意被 SaaS 平台抽成或限制,旺客是个踏实的选择。它不完美,但足够真诚——就像一个手艺人做的工具,不花哨,但用久了顺手。 |