有没有谁研究过Discuz的源码,感觉很多地方完全函数式编程,代码太长,完全懵了
有没有谁研究过Discuz的源码,感觉很多地方完全函数式变成,代码太长,完全懵了
跟现在的php规范不一样,加载规范就不说了,一个文件写的乱七八糟,从上到下,什么都有。
./source/module/forum/forum_viewthread.php
比如这个文件。
并且很奇怪为什么Discuz是开源的,但是为什么代码一行注释都没有,并且很多语句感觉像是被压缩过一样。
希望大神指点一下,谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
Dz应该做过把代码规范化的努力的。从早期演化到现在的代码中可以看出来。比如代码、模板、静态文件(图片、脚本)等目录存储;代码中各类文件与功能模块文件也分类存储;支持本地化的多语言包;从以前几十个入口网址已经简化成了十几个;其官方有页面也专门对编码规范做了要求。
但可能受限于各版本历史累积,很多地方仍然不能尽如人意。
比如,表面上已经做到了代码与界面的分离,但其实还没有。用户个人信息编辑功能你会发现相当多的前端代码也触目惊心地嵌在一堆PHP代码当中。假如有什么需求要调整这部分代码,需求稍复杂些,就会让维护这部分代码的程序员生不如死。
比如,为了兼容各PHP版本以及历史版本的遗产,一些过程代码与类对象的代码掺杂在一起。核心函数库文件 function_core.php 中的很多函数其实已经规范地写成了对应的类方法。但不知是不是为了方便暂时过渡,这些过程函数仍然在使用,只是其实现代码大部分删除,直接调用了相关类的方法。
估计Dz的发展路径最终是要废除这些过程方法,全部用类实现,最终不再有 source/function 这个子目录。同时最终简化成一个文件入口。只是后来社区、微博、微信等陆续地崛起,论坛也开始没落。在Dz被收购后,最终没有完成也无人有心完成这些没有太多商业价值的目标了。
discuz, ecshop, dedecms 这几个国内小建站公司非常青睐的开源产品, 分别对应论坛, 商城, cms. 因为开源做的早, 所以传播比较广, 并不代表这些开源产品的代表非常优秀. 他们的安全性早就包受诟病, 一度成为黑客入门练手的靶子. 而且设计落后, 历史遗留包袱比较重, 不适合用来学习, 推荐阅读一些开源框架的原代码, 比如: ci, yii, laravel, symfony等, 更适合用来学习.
除非是开发要用到,不然的话,看dz代码,把自己的编程思路和规范也搞得乱七八糟的……
最近在重构一个PHP5.3的项目,跟你对DZ的感受是一样的。
对于早期的项目我们没办法对它要求太高.没有特殊需求,我觉得看其他的项目会比看DZ好很多。
吓死我了,我还以为是FP。