根据文档说的来看 fecshop 为核心包 fec_admin 为封装的admin后台 那还有个文件夹fec里面是什么东西,扩展包?
老大能不能讲一下三个文件夹的关系?用YII还是做了几个小项目了,扩展形式的二开确实还没接触过。
看了代码一周了,确实很复杂,不过架构思想确实也很棒,希望熟悉后能为开发贡献一些绵薄之力。
根据我的理解打比方来说fec目录就相当于yii2-app-advanced里面的common,里面放一些公用的helper,widgets,class appfront相当于yii2-app-advanced里面的frontend,功能都以modules的形式存在 appadmin相当于yii2-app-advanced里面的backend,功能都以调用插件的形式存在 不知道我这样理解对吗?
晚上详细回复你
关于文件包,参看文档:http://www.fecshop.com/doc/fecshop-guide/develop/cn-1.0/guide-fecshop-construct-framework.html
这个有点历史渊源
之前刚学习Yii2,我想把常用的东西,进行封装,方便使用
然后,我把这堆代码整理成一个扩展, 然后就有了:https://github.com/fecshop/yii2-fec
然后,我想做一个基于菜单做权限控制的后台,然后就有了:https://github.com/fecshop/yii2_fec_admin
后来,Yii2比较熟悉了,我想做个开源商城,然后就有了:https://github.com/fecshop/yii2_fecshop
Fecshop的后台基于fec_admin,其他和fec_admin没有啥关系,fec_admin的一些一些功能使用到yii2-fec
因此,如果您想做个独立项目,后台部分可以使用fec_admin扩展的:yii2_fec_admin
现在我来一一回复你的话
1.根据我的理解打比方来说fec目录就相当于yii2-app-advanced里面的common,里面放一些公用的helper,widgets,class
答:不正确,common是一个公用层,而Yii2_fec:https://github.com/fecshop/yii2-fec ,有点像一个helper类包,帮助包,您可以在fecshop使用里面的封装的一些方法,当然,fecshop只在后台部分用了一点,其他的地方基本没有用fec这个库包的东西,因为之前封装的也不是很好,当时刚学yii2不久。
2.appfront相当于yii2-app-advanced里面的frontend,功能都以modules的形式存在 appadmin相当于yii2-app-advanced里面的backend,功能都以调用插件的形式存在 不知道我这样理解对吗?
答:
正确:appfront相当于yii2-app-advanced里面的frontend,功能都以modules的形式存在 appadmin相当于yii2-app-advanced里面的backend,
appfront相当于yii2-app-advanced里面的frontend,功能都以modules的形式存在 appadmin相当于yii2-app-advanced里面的backend,
错误:功能都以调用插件的形式存在
功能都以调用插件的形式存在
这个只是一个入口,除了appfront ,appadmin,还有apphtml5, appserver,appapi, 你可以理解成相当于,但是,这些的原理都是一样的,你可以为了自己的需要加更多的入口。
相当于
OK,晚上12点多了,睡觉,您自己看吧。
@Fecshop #4楼 非常感谢老大回帖。 大致上已经清楚了逻辑结构。你这几年的干货够我消化了好多天,这几天每天都在看。 可能由于代码形成的顺序有关。做fec_admin的时候没有使用service吧?你觉得有米有必要统一一下,把fec_admin的部分也用service调用的形式来完成?这样我觉得也更好的体现的设计思想的一致性,也更好的对后台的二次开发提供便利。
@sumic [[[[#7楼](#comment7)](#comment7)](#comment7)](#comment7)
1.在提问这些问题的时候,你有没有自己尝试去代码里面看看,验证自己的想法?看完后,带上自己的论据,而不是在这里空头空说?
2.fec_admin是一个yii2和dwz封装的后台通用系统,fecshop的后台基于fec_admin实现,但是代码的逻辑不是在fec_admin包里。
3.后台代码的逻辑是在:https://github.com/fecshop/yii2_fecshop/tree/master/app/appadmin ,给你前面发的文档地址里面都有介绍,为什么不仔细看完,凭自己的空想讨论这个?
4.至于后台代码里面有没有使用到service?你可以去看源码
后台部分: http://www.fecshop.com/doc/fecshop-guide/develop/cn-1.0/guide-fecshop-appadmin-developer.html
http://www.fecshop.com/doc/fecshop-guide/develop/cn-1.0/guide-fecshop-appadmin-file.html
@Terry #8楼 你是没有理解我的意思,我肯定是看了代码才来提问的。
>fecshop的后台基于fec_admin实现,但是代码的逻辑不是在fec_admin包里。
我的意思是fec_admin没有使用service,比如菜单管理、账户管理、权限管理这些基础功能。 appadmin对于电商部分的功能使用了service这个我看到了,但是基础功能是调用的通用后台。 做为一个产品我是想把fec_admin的基础部分也用service调用的形式来完成,这样我觉得也更好的体现的设计思想的一致性,也更好的对后台的二次开发提供便利。
@sumic [[#10楼](#comment10)](#comment10)
1.fec_admin是一个通用后台,是一个独立的composer库包,是独立的,里面的权限管理,用户管理是通用的,和fecshop没有任何关系。
2.fecshop依赖于fec_admin,就像fec_admin依赖Yii2,依赖只能单向依赖,不能双向。
3.你的建议目前不会采纳。
@sumic #10楼 对于fec_admin的基础功能,譬如权限,后台用户管理这些,你可以进行重写, 就像fecshop的appadmin部分,重写的fec_admin库包的缓存管理部分:
https://github.com/fecshop/yii2_fecshop/blob/master/app/appadmin/modules/Fecadmin/controllers/CacheController.php
如果fec_admin的部分满足要求,我也不需要重写,我直接用就行了
如果你在二开的过程中,对fec_admin库包的东西进行重写,那么你可以遵循fecshop的重写机制进行功能的重写。
对于fecshop,全部重写fec_admin的功能都是可以的,在架构上支持。
对于 重写的fec_admin库包的缓存管理部分:
对应的controller classMap的配置文件: https://github.com/fecshop/yii2_fecshop/blob/master/app/appadmin/config/modules/Fecadmin.php
最后:对于您的建议:
做为一个产品我是想把fec_admin的基础部分也用service调用的形式来完成,这样我觉得也更好的体现的设计思想的一致性,也更好的对后台的二次开发提供便利
回复:这个即使要把fec_admin也用service调用的形式来完成,也是不能直接去改fec_admin库包,只能在fecshop appadmin中全部重写fec_admin库包的功能,因为,有一些用户 仅仅使用了fec_admin库包做其他的系统,并没有使用fecshop。
有时候,回帖会先入为主,不仔细看代码和文档的人太多,您应该是仔细看代码了,多谢您的建议,后面想一下这个。
@Terry #15楼 是的,我的意思就是重写,这样产品更加完整和一致。完全脱离fec_admin,把产品独立出来。说实话,fec_admin功能上没啥说的,界面真的丑:)。虽然后台是自己家用的,但是谁也不会排斥精美的UI。最近比较忙,我会抽时间来重新这部分,到时候分享出来。
@sumic [#17楼](#comment17) 说和做是两码事,很多这样说的,最后都黄了,一句话现在比较忙了事。
拿后台界面说事的一堆人,我听得都起茧子了,,你是其中的一个,把你的东西拿出来之后,再来说这些,否则都是些没有用处的空话。
如果你真要做,建议你直接用vue来做独立的后台,做前后端分离,独立扩展开来,当然,这个是不小的工作量。
因此,你应该是完不成的,不是小看,毅力是个好东西,但很多人欠缺。