discuz是什么?
discuz 说白了就是康盛旗下开发的一种软件,就是目前很多论坛所采用的软件。。。。
我的论坛就是用discuz 61 版本的。。。
康盛discuz 软件,我从50---》55--》60--》61 一直用过来的。。。
discus是比较典型的应用三层架构,可以说在架构上是比较普通的,,Data项目提供公用访问接口, DataAccess 和DataMySql以及DataSqlServer是公用接口的三种数据访问层的实现,IDataProvidor接口所提供的接口数量惊人…代码行将近5000,DZ的业务逻辑的确非常庞大,其实这样的接口编写方式,个人是比较抵制的,这样看起来,这种实现纯粹是为了接口而写接口,在实现了普通访问层代码后,在反过来把所有实现的方法做为基类的接口成员,这个方式在实际中是没有问题的,很多时候我们是倾向于这么做,只是这样的5000行的接口代码就实在不敢恭维…依此可见,DZ的多数据库支持是建立在这样一个为每种数据库重建访问层实现的方式上的,可幸的是这没有影响它的运行性能,DiscuzDataDatabaseProvider 提供数据层工厂方法以实现多数据库支持;,
那么以上就是数据访问层的分析,很普通的做法,DZ在重构的时候看来只是简单的实现接口编程,没有对业务结构做出新的重构;
再来看业务层和web层,因为如前面分析所说,已经实现了普通而良好的数据工厂和数据访问层接口,所以上层就是完全面向接口的了,在这几个层次里也看不到任何的数据库访问,sql语句等,
这个就是web层,它把后台页面代码分离成为独立的dll,这样做是处于版权的考虑,让你不能获得源代码,获得了也不能轻易的修改,^^这个做法也使得以下的web目录非常的轻便,只有几个文件和目录,通常编写庞大的web应用页面必然会很多,没有全盘考虑,一下就会建好多的页面出来,而很多情况,页面中的部分甚至整个页面是功能类似的,因此应该考虑以组件,控件等方式进行复用,DZ就是个例子
DZ的插件功能,用来在后续开发中扩充应用,以类似方式定义程序集名称,按照一定的规范来编写DZ平台的插件,这是现在普遍采用的方式,
一些网站或者开源控件会提供这样的规范,让开发人员添加一些基于该平台等的应用,DZ的具体插件应用我就不清楚了 不想接着看^^主要是分析大体结构
这些则是一些通用的方法程序集,没有什么好讨论的,里面封装的一些类可以拿出来单独使用,还是挺方便的,DiscuzCache实现DZ的缓存机制。
看到你前面几段写的就知道你是玩Java的。Java主要用Spring来实现主要的解耦功能。
PHP这里的框架很少,而且PHP也没有那么灵活的反射机制等吧。所以如果要用PHP来实现高内聚低耦合,有点难度,除非你自己搞框架。
我看discuz论坛都没有用那么复杂的技术,而且我个人觉得PHP用MVC来分,分个controller,实在没有必要。
如果楼主用了很复杂的业务逻辑,为何不用Java来做业务中心,PHP做前端,使用Java的WebService来暴露数据呢?
个人拙见,一起探讨。
DZ是一个名为[Discuz!]的PHP论坛程序。官方网: http://wwwdiscuznet PW是一个名为[PHPWind]的PHP论坛程序。官方网: http://wwwphpwindnet LZ可以到官方网了解哦。
discuz是php的。搭建php的运行环境即可。
是康盛创想(北京)科技有限公司推出的一套通用的社区论坛软件系统,Discuz! 可以运行于装有 PHP 406 及以上,Zend Optimizer 210 及以上,MySQL 323 及以上或 PostgreSQL 71 及以上的 Linux/Unix/Windows 等各种操作系统环境,是真正的跨平台应用软件,在安全模式下也能完好运行。
0条评论