HDwiki架构

来源:百度知道 编辑:UC知道 时间:2024/05/16 01:51:26
小弟最近正在捣鼓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来判