浅谈MVC设计模式

来源:互联网 发布:知日偶像百度云 编辑:程序博客网 时间:2024/05/21 17:20

        近期在看Smarty模版,对基于MVC的设计模式有了一定的了解,在这里简单的谈一下。

        MVC的设计在web应用中的目的,就是为了使前台的页面,即用户用自己的眼睛看到的东西,和实际的在后台处理程序真正的分离开来,不仅仅简化了后台程序员和前台美工的联系,在工业进程上说也是更好的促进了分工的细化,作为美工我只可以考虑如何布局、如何显示、如何设计CSS样式表,是网站的整体有统一的风格和美观度;而作为后台程序员,只需要考虑这里的数据我如何处理,如何获取,丝毫不用考虑如何在这里显示出来,避免了一身兼两职的负担。

        在Smarty中的体现就是:作为美工我只需要编辑一些 .tpl的模版文件,这里的模版文件就是实际显示在浏览器中,实际用户看到的界面,即MVC中的View----视图,而作为后台程序员,我只需要编写.php文件,如何收集数据,以及最后的一个发送:$smarty->display('.......index.tpl');这里就是如何在页面中显示的地方填充我在数据库中查询到的或者处理之后的东西,这一块就相当于MVC中的Mode---模型,最终我只需要发送完数据,至于如何到达模版文件tpl,以及模版文件返回的数据如何传递,就是MVC中的controller-----控制器所起的作用了。

        采用MVC设计模式开发的Smarty等这一类的模版,它的作用不仅仅局限于是先人员功能的分离,在它的文件夹中包含的文件就可以看出它的作用:

        templates文件夹--------这当然是最基本的,存放我们编写的tpl或者其他格式的模版文件,用来显示页面。

        templates_c文件夹---------这个文件夹是存放编译后的模版和php所生成的文件,在我们工作的时候所有的任务都可以是分开的,其实在后台编译的时候,程序又将分离的php和html文件整合在一起了,打开其中的页面我们可以很容易的发现,是php和html混搭的。

        cache文件夹---------这个文件夹是smarty很重要的一个概念,存放缓存文件,我们都说smarty执行速度会很快,关键就是他生成缓存文件存放在这个目录下,程序在执行的时候会先来这里查找有没有缓存文件,如果有直接显示,如果没有再到编译的文件夹下查找文件并且拷贝到这里,这里的文件有一定的缓存时间,超过一定的时间,缓存文件会被删除,我们可以手动的设置它的缓存时间等等。。。

         configs文件夹-----------这个没有什么好说的,就是配置文件,在这里我们可以配置他的路径,以及缓存等等信息。

         看一个config.php文件:

         <?php
    /*定义服务器的绝对路径*/
    define('BASE_PATH',$_SERVER['DOCUMENT_ROOT']);
    /*定义Smarty目录的绝对位置*/
    define('SMARTY_PATH','/mr/04/Smarty/');
    /*加载Smarty类库文件*/
    require BASE_PATH.SMARTY_PATH.'Smarty.class.php';
    /*实例化一个smarty对象*/
    $smarty = new Smarty;
    /*定义各个路径的目录*/
    $smarty->template_dir = BASE_PATH.SMARTY_PATH.'templates/';
    $smarty->compile_dir  =    BASE_PATH.SMARTY_PATH.'templates_c/';
    $smarty->config_dir   =    BASE_PATH.SMARTY_PATH.'configs/';
    $smarty->cache_dir    = BASE_PATH.SMARTY_PATH.'cache/';
    /*设置smarty的左右结束符*/
    $smarty->left_delimiter = '{%';
    $smarty->right_delimiter = '%}';
    /*关闭缓存*/
    $smarty -> caching = false;
    /*关闭调试*/
    $smarty -> debugging = false;

?>

        MVC更重要的是给我们一种认识上的启示,在这里你可能获得不了很多的启示,但请重视它。