用MVC搭建一个框架,自动加载视图
我的思路是通过设计一个统一的入口页面,通过get关键字,去判断用户是点击去哪个页面,然后通过switch来向用户展示相应的页面信息。
<?php //引入view里面的共用的head头部 include './view/head.php'; //引入controller里面的config配置文件 include './controller/config.php'; $tplname = $_GET[a]; //判断是否有get值,如果没有,默认给个index值。 if (!empty($tplName)) { auto_load_tpl($tplname); }else{ $tplName = 'index'; } function auto_load_tpl($tplName){ //自动加载模版,调用view模版 //除了加载视图view以外,还要加载相对应controller下面的action动作。 switch ($tplName){ case 'login': include './controller/loginAction.php'; include './view/login.php'; break; case 'user': include './controller/userAction.php'; include './view/user.php'; break; case 'video': include './controller/videoAction.php'; include './view/video.php'; break; default: include './controller/indexAction.php'; include './view/index.php'; break; } } //引入公用的底部footer文件 include './view/footer.php';
这么做的好处是,用户不管点击哪个页面,他的入口链接都是统一的,方便后期维护。在引入文件的时候,除了要引入view里面的视图源代码外,还需要引入controller里面的php代码,去获取相应的动作,把数据取出放到view视图中,所以action动作要在前面,视图动作在后面。