@coderobin [#20楼](#comment20)
首先,你有你的考虑,你从用户角度来看的确感觉用起来费劲,你的感受我们理解。
我们做开源产品有自己的考虑,fecmall作为一款开源商城,需要解决的问题,就是一个版本的问题,开发的角色有三个:fecmall的开发,三方插件开发者,以及终端用户(程序员)fecmall本身就需要持续升级,三方开发的插件也需要持续升级,终端用户(程序员,你就算终端用户)也需要二次开发,怎么解决这三者的代码冲突?不放到vendor里面,让用户直接修改代码,升级后编写的代码全部覆盖,是不是会出问题?
依赖注入,控制反转,设计模式,yii2框架里面很多,fecmall的组件,service就是这个原理实现的,单例模式service,不清楚你是没看代码,还是其他原因,要么你教教我什么是依赖注入。
前后端分离不彻底的问题,最彻底的就是用vue,为了插件化,必然没法用vue这种,你应该说的用到一些templete模板语法,的确这个部分直接用的php变量
数据表设计,字段default null,就是个笑话了?字段default null在某些情况下,它可能引发不必要的复杂性和困惑,但fecmall用起来照样没问题,逻辑处理好了就没有问题。如果你发现字段default null引发bug,欢迎提交
列表页多字段排序,有这个多字段排序需求,功能就得这么写,数据库除了mysql,还支持mongodb,双库支持,你切换成mongodb,或者你干脆用typesense,elasticsearch等搜索引擎。搜索这块如果谈性能,就不要搞mysql了。
很多重复sql,慢sql,你指出来代码位置,具体的sql,show your code,直接上代码,前面说了,发表论点,贴上论据,把php代码,执行的sql,贴上来。
fecmall是2015年开始的项目,本人的第一个开源项目,为了解决magento代码的性能问题,而采用了mongodb数据库+mysql的模式,后面很多小伙伴们要求只用mysql也能跑,所以又开发了mysql service,双数据库模式。mongodb使用在先,mysql在后,mongodb是多维数据库,而mysql是二位数据库,为了满足数据一致性,mysql如果分多个表比较难办,进而会有很多表字段使用的序列化数组字符串,存储到mysql中。
有问题,你就直接上代码指出来,把代码贴出来,说论点不上论据,就没有讨论的必要了。