PHP演示最简单的MVC模式

为了更好的演示MVC的工作方式,我们使用了一个简单的新闻文章发布系统作为例子.分为使用MVC和不使用MVC两种方式.
我们只作一个基本的演示,从数据库里读出一些文章列表,并在页面上显示。一般的流程就是,连接数据库,查询数据库,循环输出html结果。下面的代码就是如此做的。(淡水感觉怪怪的,语言组织得不好。好在代码比较容易理解)

  1. <?php  
  2. mysql_connect();  
  3. $result = mysql_query(select * from news order by article_date desc);  
  4. ?>  
  5. <html>  
  6.     <body>  
  7.         <h1>News Articles</h1>        
  8.       <?php while ($row = mysql_fetch_object($result)) { ?>  
  9.                 <h2><?php echo $row->headline ?></h2>             
  10.                 <p>  
  11.                     <?php echo $row->body ?>  
  12.                 </p>  
  13.       <?php } ?>  
  14.     </body>  
  15. </html>

采用mvc方式.

model:

  1.       
  2. <?php     
  3. function get_articles()  
  4. {  
  5.     mysql_connect();   
  6.     $result = mysql_query(select * from news order by article_date desc);   
  7.     $articles = array();  
  8.     while ($row = mysql_fetch_objects($result)) {  
  9.         $articles[] = $row;   
  10.     }  
  11. return $articles;  
  12. }  
  13. ?>

controller:

  1. <?php  
  2. $articles = get_articles();   
  3. display_template(articles.tpl);  
  4. ?>

view:

  1. <html>  
  2. <body>  
  3. <h1>News Articles</h1>  
  4.         <?php foreach ($articles as $row) { ?>  
  5.         <h2><?php echo $row->headline ?></h2>             
  6.             <p>  
  7.                 <?php echo $row->body ?>  
  8.             </p>          
  9.         <?php } ?>    
  10. </body>  
  11. </html>

译得不好请多多包涵.原文:http://reinholdweber.com/?p=16

Leave a comment

5 Comments.

  1. 淡水,入口文件??

  2. 淡水河边

    controller就是入口了啊。mvc不一定就是经常看到的单入口形式的框架模式,只要mvc分开就是了,而且执行效率肯定比所有的框架要高;当然工程的进度肯定没那么快了,毕竟框架好多东西都有了

  3. 多谢啊,我刚学,这个能帮助理解,很好

  4. 总感觉这个M有点多余,取数据直接写着C里不行吗?

  5. 淡水河边

    C一定要“瘦”,按定义,C只是收集用户请求、调用M完成业务、调用V呈现界面的控制器。数据的存取属于你的业务模型,所以应该放在M中,M就是模型。包括文件的读写,上传操作,登录等等都市模型,都应该放在M中。
    但是,这个并不是个强制的标准,也可以不用M直接放入C中,不过这样就不是MVC了,而是类似于以前直接php(完成业务逻辑)+smarty(定制显示界面)。

Leave a Reply


[ Ctrl + Enter ]

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word