Yii2开源系统浏览简记

2017-9-13 邪哥

基于上篇中提到的计划,近期会逐步去筛选甄别一些基于Yii2的开源系统。

以下是一些基础的筛选条件:(仅基于个人观点和喜好)

· 代码结构层次清晰规范

· 文档逻辑清晰便于查阅

· 合适合理的可扩展性

· 有持续的支持和维护

· 方便使用


目前已经筛选了一些开源系统,不过还会基于这些以及一些其它的个人判断,继续筛选甄别,直到找到一个自认为不错或者合适的开源系统为止。

有人可能会有疑问,花这么大精力去找别人的开源系统,为什么不自己设计一个呢?其实这个问题我也纠结过。

这边也简单的给自己一个回答。首先个人的精力有限,对于单个系统,创造所花费的精力要远远大于学习。另外,个人的技术能力和认知范围也有限,且不说东西能不能做出来,做出来之后能否符合上述自我规定的筛选条件?恐怕这得打上一个大大的问号。至于其它的也就不用说了。

“懒惰成性的借口”,“伸手党给自己的理由”,用这些来抨击我给自己的回答也未尝不可。不过这就是我目前基于现状的一个自我判断。


回归正题,下面开始记录一些,查找筛选过程中碰到的一些系统,及个人感受(很烂或不值一提的东西在这边就略过了)。


== Yii Document Center

个人基于yii2开发的一个文档中心,当时做这个主要也是工作需要,所以后续就没怎么跟进了。

文档,基本没有,集成和可扩展性都比较差。另外就是没人讨论和参与,个人投入的精力也不多。

所以基于这个再做调整和开发,没多大价值,于是就pass掉了。

当然如果你正在找一个基于yii2开发的,可以用来写内部文档或者个人备忘之类的,可以试试。

目前github上只放了源码, 需要自己搭建的话可以联系我。或者直接在线用,地址为  http://ydc.jeen.wang

github:   https://github.com/JeanWolf/yii-doc-center  


==Skeeks CMS

俄罗斯人开发的一款CMS,文档地址 https://docs.cms.skeeks.com/en/latest

github:  https://github.com/skeeks-cms/cms 

目前还在持续开发中,几天前去下载尝试安装了下,配置完之后前端问题不大

后台就有点让人找不着北了,看了下源码,重写之后的4.0版本对于管理后台的改动较大,好多废弃的东西也没删

文档更新也相对不全,提供了英文版但是好多都没翻译,简单看了下还是放弃了。英文的话还能凑合看下,俄文实在有点吃不消。

由于没有深入研究,这边就不提供其它的信息了,不过看项目结构和文档规划还是比较清晰的

以后可以回头再看看


==Fecshop

本来不太想提这个系统,个中原因吧,大部分是由于上篇中提到的一些问题。

这个是国人开发的一款商城管理系统,功能算是比较全面的了。

顺便提下,这个系统的设计以及一些细节的把握不到位,比如 Yii 类名的冲突问题。

当然,像原作者回复我的,我不是权威,也没找什么相关的权威文档作为论证。

所以这边就不过多评论了。毕竟国内能开源并且把项目做的是那么回事儿,还不收费的,真的是太少。

有兴趣的可以自行百度一下。


==DotPlant2

也是俄罗斯人开发的一款开源系统,集CMS  eCommerce于一身

GitHub: https://github.com/DevGroup-ru/dotplant2 

不过和skeeks差不多,有提供英文的文档,不过不全

功能倒是很全面,内容后台可控性也很高。适合做一些企业门户,尤其是有自己品牌展示需求的企业。

不过它的代码层级结构,看着让人不太舒服。比如它把slider (一个widget,或者说plugin更准确) 直接放在了根目录下面

所以体验了一下之后,也决定抛弃


==CraftCMS

小美的一款CMS系统,专注于后台的。没有前端样例是个缺憾

基于Yii2重构的目前还是beta版本,不过安装体验之后发现它还是相当强大和完善的。

但还有另外一点想吐槽的,就是它使用了 twig 模版系统。

从各个方面来说,是挑选到目前感觉最适合深入了解的一款开源系统。

所以后续应该会在它上面投入较多的时间。


==Yii2CMF   2017-09-22 补充

国人开源的一款内容管理系统,说的是偏向于后台功能。

不过前后端都有提供,只是前端功能并不是后台高度可控,有些功能关联逻辑似乎还有bug(不过并不影响整体使用)。

Github地址: https://github.com/yidashi/yii2cmf 

没有老外类似针对字段和内容的自定义可控性那么强,不过能满足80%的门户类建站需求了,还是非常不错的。

另外比较好的一点就是,它采用的都是原生PHP进行编码。

没有三方模版的额外学习成本,代码逻辑也比较容易理解,可读性不错,出问题了 可快速自行调试解决。

如果你在寻找cms相关的系统,或者想找个不错的开源系统进行二次开发,不妨试试这个。


==PyroCMS   2017-09-26 补充

老版本基于CI,新版本基于laravel,同样集成使用了 twig 模版系统

也是小美的CMS系统,提供前端及后端,是一套相对完善的CMS系统。

如果单纯拿来建站,可以试试。

不过新版本的套路没太看懂,似乎是要把所有的功能全部模块化

而且全部可以通过composer安装,单从入口到最终的模版渲染都有点让人头晕(花了半小时),

很难直观的凭借基础的PHP知识进行定制化的修改, 接外包的倒是可以深入研究一下 

如果是想学Yii的话,建议直接略过



关于筛选以及个人评价的一些基础观点补充说明:(对于开源系统)

· 好的系统一定要有好的设计理念以及规范。这个跟技术的沉淀或者思维模式关系比较大,很多人可能自以为设计的很牛,其实是一团糟,甚至常犯一些低级错误,把很多不必要的功能强加到系统里面,而没有解决耦合问题,使得系统臃肿难看。

· 良好的文档。好的文档跟朋友一样,不在于多而在于精,它会在你需要的时候给你提供最简单的指导和帮助。一个开源系统的文档一定是与系统自身相关的文档,另外得把握好文档的目录结构以及中心主题。看过一些开源文档,很多人自以为写的很详细,也确实写了很多,就觉得自己做的很好,别人有问题或者有意见的时候,就指责别人没好好看文档。其实只要他稍微审视一下,就会发现自己写的文档有很多东西跟自己做的牛头不对马嘴,完全偏离了重心。比如,我想知道怎么安装yii2 basic app的样例程序,他跟你说:  用composer 就好,不过首先你得保证本地环境可用,比如你用nginx ,那么nginx需要怎么安装balabala.... nginx怎么配置 .... 你还要安装php .... php的什么什么扩展..从哪儿下载..怎么安装.. 配置参数.. MySql... Redis.....  。像这样在开源系统文档里面,安装介绍的部分,对于本系统的安装潦草略过,反而花大篇幅去讲依赖环境的安装配置。甚至给你再搞个40分钟的安装视频教程,你能说他做的不用心? 但这只能让我心生厌恶...

· 良好的结构和可扩展性。这个跟经验的关系就更大了,经验不足或思维局限的人,是不可能做到的。当然良好的结构是前提,如果你在某个方面做的很好,那这个系统其实就非常有价值了。能满足部分人的实际需求和使用,可扩展性不考虑,它也能体现价值。但是要做到通用或者说想走的更远,可扩展性就是必要考虑的了。

· 无使用门槛或较低的学习成本。做开源系统,肯定会面对各个不同层次的使用者。当个别人说你的系统不好用的时候,可能是别人的水平问题。当大多数人都在说你的系统不好用的时候,那可能就是你的问题了,当然也可能仍然是别人的问题。不过很多做开源系统的在面对提问或者意见的时候,却居高临下,一副你是菜鸟,你没好好学还有脸说别人的东西不好? 面对这种情况的时候,我本人往往是“呵呵”了。很多人都会说什么“伸手党”之类的,但是既然你做开源系统,又希望能推广布道,考虑大众使用者的感受就是你应该做的,你做的不好,别人提意见还高高在上? 当然,你可以装做很牛无视众菜鸟,我也可以“呵呵”

· 系统自身依赖性简单耦合性低。 这个可能评判的标准不太一致,毕竟每个开源系统的目标都不尽相同。但是反面的例子就是,把自认为很牛的东西或者技术点,统统搬到系统里面来,比如什么模版引擎 什么搜索引擎 什么缓存 等等。当然接口或功能你可以实现,但用不用还是给用户留一个选择但余地毕竟好。这个可能和所谓但扩展性有点重复,但是似乎问题很常见,尤其是国内的(应该是因为接触国外的东西太少),很多人总喜欢搞些华丽却不实用的东西。


当然这些东西和观点,也是用来警醒自己的。可能你会认为是错误的,或者太极端。也欢迎你提出自己的见解




未完待续

也欢迎你推荐好的开源系统(基于Yii2)一起探索交流


本文所有涉及评价内容,均为个人观点。如有冒犯,请与作者取得联系,或直接留言。

发表评论: