为了更好的演示MVC的工作方式,我们使用了一个简单的新闻文章发布系统作为例子.分为使用MVC和不使用MVC两种方式.
我们只作一个基本的演示,从数据库里读出一些文章列表,并在页面上显示。一般的流程就是,连接数据库,查询数据库,循环输出html结果。下面的代码就是如此做的。(淡水感觉怪怪的,语言组织得不好。好在代码比较容易理解)
- <?php
- mysql_connect(…);
- $result = mysql_query(’select * from news order by article_date desc’);
- ?>
- <html>
- <body>
- <h1>News Articles</h1>
- <?php while ($row = mysql_fetch_object($result)) { ?>
- <h2><?php echo $row->headline ?></h2>
- <p>
- <?php echo $row->body ?>
- </p>
- <?php } ?>
- </body>
- </html>
采用mvc方式.
model:
- <?php
- function get_articles()
- {
- mysql_connect(…);
- $result = mysql_query(’select * from news order by article_date desc’);
- $articles = array();
- while ($row = mysql_fetch_objects($result)) {
- $articles[] = $row;
- }
- return $articles;
- }
- ?>
controller:
- <?php
- $articles = get_articles();
- display_template(’articles.tpl’);
- ?>
view:
- <html>
- <body>
- <h1>News Articles</h1>
- <?php foreach ($articles as $row) { ?>
- <h2><?php echo $row->headline ?></h2>
- <p>
- <?php echo $row->body ?>
- </p>
- <?php } ?>
- </body>
- </html>
译得不好请多多包涵.原文:http://reinholdweber.com/?p=16
淡水,入口文件??
controller就是入口了啊。mvc不一定就是经常看到的单入口形式的框架模式,只要mvc分开就是了,而且执行效率肯定比所有的框架要高;当然工程的进度肯定没那么快了,毕竟框架好多东西都有了
多谢啊,我刚学,这个能帮助理解,很好
总感觉这个M有点多余,取数据直接写着C里不行吗?
C一定要“瘦”,按定义,C只是收集用户请求、调用M完成业务、调用V呈现界面的控制器。数据的存取属于你的业务模型,所以应该放在M中,M就是模型。包括文件的读写,上传操作,登录等等都市模型,都应该放在M中。
但是,这个并不是个强制的标准,也可以不用M直接放入C中,不过这样就不是MVC了,而是类似于以前直接php(完成业务逻辑)+smarty(定制显示界面)。