撸业务,mvc就够了,做产品不仅仅如此,要照顾很多
代码持续升级,数据库持续升级,修改框架底层,fecshop后期重构底层,解耦合,可扩展,方便重写等等
你说的那些yii强大的地方,只是一些脚手架,fecshop的前端部分,需要非常独立,因为用户可以自己做模板,
因此用户可以不用bootstrap,而yii的这些脚手架都依赖于bootstrap,另外,对于商城,首页,产品,分类,购物车,这些页面gii也造不出来,另外fecshop的模板机制是多模板机制,而且加入了service层,block层,这些yii2默认的都是没有的,gii是没法用的。
提问这个问题,你可以换位思考,写出来你换位思考的想法,你既然有为什么不用的提问,你可以想想,如果用,怎么用呢?能优化那些?有什么好处?
fecshop选择是弃用,yii的这种适合做后台,但是后台我根据需要自己封装的aopadmin,开发起来更快,所以整体弃用了。
yii2强大的地方,在于他的设计模式,譬如行为:http://www.yiichina.com/doc/guide/2.0/concept-behaviors
,对于整页缓存,可以通过行为(Behaviors),很方便的嵌入整页缓存功能,
yii2的ActiveRecord同样也很强大,多种数据库,譬如mysql,mongodb,redis都以AR的方式抽象出来,方便使用
另外,yii2的组件异常强大,懒加载模式,非常独立,基于容器注入的方式生成,可以通过配置和class,通过容器生成多个组件,因此session,数据库,等组件解耦的非常好,session可以选择多种底层,可以选择mysql,mongodb,redis,文件等实现,而且是解耦的,我认为封装的非常好
另外,一处封装,多处使用,yii2的user组件,无论是web状态,还是restful模式,都是可以使用的,而且觉察不出来有什么不同,将解耦和通用性做的很好。
yii2的底层编码,读了也不少,了解这个框架后,我就感觉这个就是我想要的框架,yii2将各种编程思想用的很好,代码结构比较扁平化,底层代码易读,还是上面说的,将解耦和通用性做的很好。
fecshop借鉴了很多yii2的思想,譬如service层的实现就是参考的yii2的组件,各个services是解耦独立的
fecshop是多入口模式,多个不同的入口公用services,那么services就要做一系列的封装来满足通用性,
譬如fecshop有web端和基于api的vue端,web端有session,但是api端没有,因此,fecshop封装了session services,也就是:https://github.com/fecshop/yii2_fecshop/blob/master/services/Session.php
,让appserver端(vue的后端入口)也可以像使用php session那样使用,session services
可以使用get set方法。
另外fecshop的services层,重构底层非常方便,譬如将cart由mysql数据库换成 redis,我开发了一个fecshop的redis cart扩展:https://github.com/fecshop/yii2_fecshop_redis_cart
,安装配置后,原来cart信息存储到mysql里面,就切换到了存储到redis里面,对于上层代码都是无感知的,这些思想都是取自于yii2的设计思想。
总之,我认为yii2的强大之处在于他的设计模式,而非那些脚手架,即使没有那些脚手架,作为yii2使用者也要有能力针对自己的业务特点,做一系列的封装,做出来快速开发的脚手架。