永发信息网

HDwiki架构

答案:1  悬赏:60  手机版
解决时间 2021-07-21 11:54
小弟最近正在捣鼓HDwiki的网站,有谁可以帮忙介绍一下HDwiki的架构吗?
最佳答案

MVC
php是嵌入式语言,最简单但也是最繁琐的就是php和html嵌套着写,开发维护绝对能让人产生暴力冲动.所以HDwiki采用了mvc模式,可以方便开发人员分工协作,提高开发效率,增强程序的可维护性和扩展性,而且还利用Controller将Model与View分离,降低它们之间的耦合度.


HDwiki中,一个请求发过来后(如index.php?doc-view-1),调度控制器(hdwiki.class.php) 会根据请求决定由哪个控制器的哪个方法去处理,本例中是doc这个控制器的doview方法去处理,这个控制器文件便是/control/doc.php,doc这个控制器的doview方法负责处理业务部分(比如数据校验,业务逻辑),调用模型(model)和视图(view).模型主要是根据要求取的数据,可以是从数据库去,也可是是从文件中去,还可以是从内存中去,归根到底一句话,根据业务逻辑处理数据.而视图就是要将我们处理好的数据显示出来,控制器将要显示的数据发给视图,视图根据要求就将显示的样式,html代码,要显示的数据处理成一个模板文件,最后显示出来.这样一个请求便处理完了.可能会有哥们要问了,为什么能根据index.php?doc-view-1能知道控制器是哪个,方法是哪个?这就是我们要说的下一个关键词---URL


URL
HDwiki中的url形式为index.php?doc-view-1,index.php是所有请求的唯一入口,query_string以"-"分割,第一个doc表示调用的控制器文件,路径是/control/doc.php,第二个"view"是要调用的控制器的方法doview,后面的参数"1"(或者更多的参数)均是doview方法中需要的参数,顺序是自定义的,等等,url中明明是view,怎么调用的是doview方法呢?在hdwiki系统里可以从url中知道要访问的方法名称,但是如果control中有方法不想被url直接访问,也就要区分开,所以需要在所有url中集中处理,能被直接访问的统一加do.


权限
HDwiki的权限可能是最独树一帜的,每个用户的是否有访问权限完全根据url来判断.我们给用户分组,比方说管理员组,词条管理员组,普通用户组,匿名组等,每个组都有一坨的可访问的url列表,你在哪个组,你就只能访问那些url,也就是那些应用,每个url都是一个权限控制.你能访问的url都会被控制.当然一个url中大家都可以看,但是有部分是有限制的,这就需要做点点调整,比如匿名用户看到的是"请登录",登录用户看到的是"退出",这个我们就会辅助以用户组id来判断.


标签
hdwiki的标签功能能让站长和开发者更方便快捷的添加要显示的各种数据,基本表现形式是在页面中添加例如 {hdwiki:docnumber /}的数据,便能显示总词条数.其原理也很简单,就是根据标签正则匹配,然后调用相应的方法去调用数据,当然,每个标签要调用的方法都已经写好了全部保存在model/tag.class.php中,以{hdwiki:docnumber /}为例,当调用页面时,它被解析成$_ENV['tag']->docnumber(),而这段代码便是去调用/model/tag.class.php的docnumber这个方法,这个方法便调出总词条数的数值.这样,只要在tag.class.php中存在的方法,就可以在任何页面调用了.

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
什么牌比较适合练花洗?
宣恩县恩施宣恩农村商业银行(晓关支行)在什么
我在北京见到一些用螺母和铁线做的机器人模型
怎么分辩一个人有没有说谎?
天下贰网吧三倍经验npc在哪?
QQ丢了怎么找回来啊
网店的减肥产品
溆浦县怀化中国体育彩票地址有谁知道?有点事
人家带我刷个老鼠。我网络中断,结果再上,封
金沙商店地址有知道的么?有点事想过去
仿照例句写句子渔夫,描写渔夫的诗句
怎么样让自己有自信
地下城怎么成为pk高手
越狱大结局讲到哪里?我不知看完没。
QQ英雄岛为什么莪用生活技能制造装备是绑定的
推荐资讯
岳麓区长沙正宗浏阳蒸菜馆(姊妹店)地址是什么
电脑流动壁纸?
小狼狗的特征是怎样的啊?怎样分辨是不是小狼
林俊杰天堂2的职业是什么?
鸟蛋都有什么样的
引用 内存错误 !!!
龙岩谁的CF技术最好?
Q币充值怎么查?
怎样能很快的把日语字母记住?(用简单可行的
岳阳县岳阳月田镇大界片完初联校我想知道这个
那QQ幻想怎么点亮
世界上 是谁先登上月球得?哪个国家的?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?