本篇文章给大家谈谈discuz采用mvc,以及discuz官方网站对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、Discuz、Phpwind和Spacebuilder,哪一个好用?
- 2、怎么进行discuz的二次开发
- 3、discuz X3.1 中C ::m 是什么
- 4、discuz框架里为何要先到module下的php文件再到template的htm,为何不直接从最开始的php文件到htm文件引用
Discuz、Phpwind和Spacebuilder,哪一个好用?
discuz缺点:
不能批量编辑用户,如不能批量移动到指定用户组。
帖间随机广告代码不能“每条随机广告一行,用回车分开”。
没有“沉底”功能。
没有道具,用户不能自行改名。
不能批量删除某个用户若干天内的所有回复或主题。
优点:
discuz免费。
使用快速回复框时不会说“您提交的参数错误。请仔细阅读论坛帮助文件,确保您有相应的操作权限。”
不会因为css代码下载不完全而导致版面格式混乱。
积分、用户组、发帖数级别设置更灵活。
比asp+access版论坛更节约空间。转换后数据库大小只有动网Access数据库的三分之一。
速度快。
可以匿名发帖。
可以设置昵称。
可以直接使用纯真IP库。
后台设置简单明了。
可以“用户栏目定制”。
可以“合并用户”。
可以在后台直接更改用户名。
页面上下都有页码,方便翻页。
可以前台批量操作。
不会多重引用。
用户编辑帖子可以自己更改主题分类。
phpwind特点:
独创、成熟
phpwind独创的技术架构和程序设计,获得国家专利认证,从根基着手塑造快速、稳健、可扩展的论坛程序。7年砺炼,在用户需求基础上进行不断创新与完善,无论企业还是娱乐,全面满足论坛建设。
安全
高效防护算法、程序监控技术、注入式入侵过滤技术、防CC攻击技术、安全验证机制构筑的站点安全体系,将风险防患于未然
快捷、稳定、高效
核心参数的合理配置、负载均衡处理技术、数据库分表技术、文件读写稳定性算法帮助您最大限度地节省硬件资源,保障站点在服务器繁忙时快速稳定运行。
不仅为站长而设计
站长建站,影响的却是网民。PHPWind“不仅为站长而设计”的设计理念,将人性化融入论坛功能的点点滴滴。清晰的用户等级与权限设置,便捷完整的论坛功能与管理操作,详细地日志与统计记录,集成交易与支付,轻松备份/恢复数据给予站长和每一位会员良好的用户体验。
可扩展
开源、规范化的代码编写、标准化的插件接口和清晰简洁的模板体系理念,让站点无限延伸至未来。
完美整合
PHPWind所取得的同业合作,为您提供更多建站软件选择和无间隙的软件服务,帮助站点多面需求。查看详情
丰富的第三方资源
近千款风格,近百款插件,仍在不断丰富。查看详情
操作系统要求
PHPWind具备跨平台特性,支持 Linux/Unix及Windows 2000/2003/ XP等操作系统。
针对上述操作系统,我们队软件做了大量的测试和实地检验,保证PHPWind可以安全稳定的运行,但您仍需做好服务器操作系统的安全防备措施,例如Windows用户需更改MYSQL的初始密码,使用较新的稳定的软件版本等。
语言及数据库支撑环境要求可用的 web 服务器(如 Apache、Zeus、IIS 等)
php 5.2.x及以上
MySQL5.1.x及以上
Zend Optimizer 3.x及以上(可以不用)
如果您租用虚拟主机,请咨询虚拟主机提供商,您的空间服务器是否已安装了上述软件。
由于
PHPWind的数据表具有前缀设计,因此通常情况下可以将PHPWind与其他软件安装在同一个数据库中,或采用不同的前缀名在同一个数据库中安装多个PHPWind
论坛而不产生冲突。
您的 MySQL 数据库账号应当拥有 CREATE、DROP、ALTER 等执行权限。
安装可能用到的工具软件
PHPWind论坛系统的安装使用非常简单,因此您可能需要用到的工具软件也非常少。
1)您可能需要一个FTP客户端软件来上传PHPWind程序文件;
2)PHPWind是一个开源系统,您可以按自己的想法来修改程序代码,从而得到自己想要的社区呈现效果,或者社区系统某些配置文件的参数需要修改,此时您可能需要一个简单的文本文件编辑软件,一般操作系统自带的如Windows的记事本或第三方软件如EditPlus,都可以。
Spacebuilder - 特色
1.产品架构:采用“平台+应用”的设计思想,可以方便及快捷的扩展新的应用;
2. Ajax:表现层采用大量的jQuery技术,使用户获得良好的用户体验;
3. asp.net mvc:采用微软最新的asp.net
mvc(c#)进行表现层开发。彻底消除了ViewState可以万全控制html代码的输出;Controller与View完全分离充分避免了皮肤机制的性能损失;原生态的url
routing更利于urlrewrite。
4. 数据存储:目前采用SQL Server2000/SQLServer2005/SQL
Server2008进行数据存储,由于数据访问层采用了Provide设计模式所以可以方便的移植到其他关系型数据库;
5. 数据访问:为了提升性能以及数据库安全性,数据访问全部采用存储过程;
6. 高效缓存:使用可分区的缓存技术,并且具有优秀的缓存过期策略,使站点获得性能提升的同时,保证缓存与数据库数据同步;
7. 全文检索:以Lucene为核心实现全文检索功能,实现索引库自动更新,并提供企业级的全文检索性能;
8. 扩展机制:优秀的皮肤实现机制,使客户可以方便的对现有皮肤进行修改或开发新的皮肤;核心模块提供了全局事件,客户可以开发自己的Module;
9. 配置文件:配置信息均采用XML格式,易于管理设置;
10. 所有页面均采用xhtml+css进行设计,符合web标准,兼容所有主流浏览器(IE、Firefox),降低页面流量,提高加载速度;
怎么进行discuz的二次开发
必须至少具备如下技能:
1) 能够理很好理解MVC构架的原理(虽然DZ不是MVC架构的)
2) 扎实的PHP基础,熟悉结构化程序,OOP程序的写法及应用
3)熟悉MYSQL就用,掌握SQL语言,懂SQL优化者更佳
4) 熟悉使用Discuz!的各项功能
一) Discuz!的文件系统目录
注:想搞DZ开发,就得弄懂DZ中每个文件的功能。
a) Admin:后台管理功能模块
b) Api:DZ系统与其它系统之间接口程序
c) Archiver:DZ中,用以搜索引擎优化的无图版
d) Attachments:DZ中 ,用户上传附件的存放目录
e) Customavatars:DZ中,用户自定义头像的目录
f) Forumdata:DZ缓存数据的存放目录
g) Images:DZ模板中的图片存放目录
h) Include:DZ常用函数库,基本功能模块目录
i) Ipdata:DZ统计IP来路用的数据
j) Plugins:DZ插件信息的存放目录
k) Templates:DZ模板文件的存放目录
l) Wap:DZ无线,Wap程序处理目录
二) 必须记熟Discuz!数据库设计的每个表的功能,每个表中每个字段的功能。
关于DZ数据库设计文档,请参阅DZ相关的项目
三) Discuz!的流程控制
a)
后台流程控:DZ后台所有的功能,均需要注册到admincp.php文件,每个功能都至少有一个或一个以上的Action(动作),在
admincp.php中,可以定义Action的执行权限,分别为:“admin==1”管理员,或“admin==2
admin==3”超级版主和版主,每个Action对应一个脚本文件,脚本文件的命名为action.inc.php(*.inc.php),并存放在
admin目录下,如执行:admincp.php?action=dodo,相当于执行admin目录下的dodo.inc.php文件
b) 前台流程控制:前台的流程控制比较简单:流程是自由的,如:
首页:index.php
会员注册:register.php;
会员登录:logging.php
发贴程序:post.php
会员信息:member.php
论坛内容:forumdisplay.php
查看贴子:viewthread.php
…大部分功能,此处不一一列出…
c) DZ根目下的config.inc.php属于整个DZ系统的配置文件
四) Discuz!的数据处理过程
a) DZ对mysql的数据库操作处理全部封装在dbstuff(db_mysql.class.php)类中
b) 所在的外部数据均通过“daddslashes()”初步过滤,然后再过滤,再根据需要处理
五) Discuz!的显示控制(网站多样式风格输出)
a) 显示层就是大家通常所看到的网站风格了。DZ中每套风络分别在templates及images下对应一个风格文件的存放目录。网站风格的制作,请参阅详细的DZ风格制作文档
b) DZ网站风格文件处理的原理:其实很简单,DZ使用template.func.php中的parse_template()以PHP正则运算把htm模
文件中的模板标签,转换成了PHP代码,并根据styleid保存在forumdata/templates下,这个有点像Smarty中的技术。
六) DZ中的语言处理
a) 前台及后台中、英语言的实现,均是把语句定义成了语变量,然后在模板输入,语句变量的赋值,均放在模板目录中的*.lang.php文件中,DZ在生成网站风格时就加载了这相应的语言包。
七) DZ如何处理用户信息(存取、计算、更新过程)
新手要做二次开发,都必须掌握这数组中,每个数组元素的意义。
a) DZ的基本信息,如用户信息,Session信息存在如下变量中:
a). $_DCACHE
b). $_COOKIE
c). $_DCOOKIE
d). $_DSESSION
e). $_DPLUGIN
b) 可以通过print_r($GLOBALS),打印全部变量
八) DZ中缓存处理机制
a) DZ中缓存处理过程都放在“cache.func.php”中,DZ的缓存处理比较简单,其原理是把一个数组转换成了PHP代码,并保存在缓存目录下,大家可打开缓存文件查看便知。
b)使用方法:如果在新开的功能中,需要缓存某部分数据,基本上就是:
1)定义并注册缓存名字。
2)从数据读取相应的数据。
3)数据在写入缓存前作相应处理。
4)最后写入缓存。
具体操作,可以看文件中的代码,做相应的修改即可
九) DZ中模板处理机制
a) DZ独创的模板处理技术,类似于Smarty中的模板处理,只是具体算法,过程不同,Smarty是一种重型模板引擎方案。其原理都是把模板中的变量转换成相应的PHP代码,这个过程实际是模访JAVA中的一次编译,多处运行。
十) DZ中权限处理机制
a) 对于DZ中前台的每相action都有$discuz_action定义,DZ根据用户所在的用户组来判定用户是否具有相应操作$discuz_action的权限。至于后台的权限权验证,则更简单了,依据“admin==1”来确定的
十一) DZ中如何实现URL静态化
a) DZ中的静态有两法,只要懂ReWrite规划的朋友,一看就知。
十二) DZ独创的HTML编辑器,如何截取并使用,如果进行Discuz!代和Html代码的转换
a) 这也算是DZ比较牛的一项技术了,在早期版中,因DZ编辑器的不足,使得很多用户放弃了DZ。
实现原理:通过JS把用的一些操作转换成了DZ的bbcode代码。这样子提交了安全性,将带有bbcode代码的内容存入数据,在用户打开页页时,又把bbcode代码转换成html代码
discuz X3.1 中C ::m 是什么
系统采用mvc框架设计这种格式的一般都是数据调用和数据库方面有关的代码
discuz框架里为何要先到module下的php文件再到template的htm,为何不直接从最开始的php文件到htm文件引用
没研究过discuz代码,但是应该是MVC架构。
先用module 的功能模块读取数据库数据,然后再载入template(模板,用于前台显示),将数据应用到模板中来展现网页。
MVC的特点就是“数据”与“表现”分离,这样方便开发和维护。当然,也可以按照你说的直接在最开始的php文件来展现html。但是这种开发方式的特点是数据操作与展示混合在一起,对大型项目来说这种开发方式在开发、调试和代码维护方面对程序员来说都是”噩梦".
希望对你有些帮助
discuz采用mvc的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于discuz官方网站、discuz采用mvc的信息别忘了在本站进行查找喔。