WC的程序框架是比较典型的MVC模式,程序有若干个文件夹组成,在二次开发过程中主要涉及到的目录有三个,先针对这三个目录的结构进行详细说明:
models\ 模型(M)
用来实现你的业务逻辑,由控制器来决定调用哪个模型。
views\ 视图(V)
就是前台的视图了,网站你所看到的东西都是在这里边的。
app\ 控制器(C)
接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
下面以“发起问题”为例实际说明一下:
1、用户编辑好问题之后,点击“确认发起”,此时触发了控制器的“发布”行为(Action)
2、控制器检查输入的字段无误后,调用某个模型model,此时模型将进行业务处理(将用户发布的问题写入数据库)
3、控制器再调用某个视图view(用户将看到发布成功的信息)
以上只是大概的说明了一下程序执行的流程,如果没有什么基础看不明白是正常的,写完这一节会写一个友情链接插件的详细开发过程,下面再详细解释这3个目录下每个文件的作用:
models\ 模型(M)
models\ xxxx.php
这个文件夹下面的命名规则是以“模块名.php”命名的,负责处理相关模块的业务逻辑,比如article.php就是负责处理和文章相关的业务逻辑。实际上这里的文件名可以随便取,以模块名命名是为了方便区分是控制哪个模块的。
views\ 视图(V)
views\default
这个是风格目录
views\default\admin\模块名\xxxx.tpl.htm
这个是后台风格目录,比如article\list.tpl.htm 对应的就是后台的文章列表风格
views\default\模块名\xxxx.tpl.htm
这个对应的是前台的风格目录,比如article\square.tpl.htm 对应的就是前台经验列表风格
app\ 控制器(C)
此目录下有很多以模块名命名的文件夹,对应每个模块的控制器,一般情况下两个有两个文件:
main.php
控制器的默认入口文件,以发布文章为例。发布文章的URL是http://wenda.wecenter.com/?/publish/article/,当访问这个页面时,就触发了app\main\publish\main.php中的article_action()函数,然后再在此函数中指定要显示给用户看的模板(也就是文章发布页面了)
ajax.php
此文件主要用于接收前台用户某个操作(Action)时所传递过来的数据,比如发布文章时,提交的地址就是:http://wenda.wecenter.com/?/publish/ajax/publish_article/
对应的就是ajax.php中的publish_article_action()函数。在publish_article_action()函数中再指定调用models\publish.php 中的publish_article()函数来处理用户的请求,
介绍目录构成的就先写这么多了,下一节将以一个实际的例子(友情链接)来说明WeCenter的框架以及程序执行的流程。
阅读全文
收起全文