多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
#9.创建控制器基类 控制器基类要实现的功能就是,实现加载相应的页面的方法并且传递数据到页面中。 为什么要创建控制器基类呢,在mvc中,工作原理是,网站首页->Home控制器->index方法->查询需要的所有数据->将数据发送到(view层)->展示给用户 我们新建一个controller基类,实现加载相应页面的方法,首先判断页面是否存在,如果存在那么则引入。并且传递数据到相应的页面中。 ```cpp |-core 框架核心目录 | |-Controller.class.php 所有控制器的基类 <?php /** * 所有控制器的基类 * User: find35.com * Date: 15/12/26 * Time: 上午9:53 */ class Controller { /** * 加载指定的模板页面 * @param $page * @param array $data */ public function show($page,$data=array()){ $url = "app/views/".$page.".php"; //判断页面是否存在 if(file_exists($url)){ require_once $url; } } } ``` 之后让所有其他的类,继承此基类。调用show方法来加载view层。 ```cpp |-app 前台 | |-controllers 存放所有的控制器目录 | |-Home.class.php <?php /** * 前台首页控制器 * User: find35.com * Date: 15/12/24 * Time: 下午5:44 */ class Home extends Controller { public function index($data = array()){ //加载首页页面 $this->show('index/index',$data); } } ``` 我们新建一个view层的模板文件,在随便里面写点东西 ```cpp |-app 前台 | |-views 存放所有的页面 | | | |-index.php 前台首页页面 <?php /** * 前台首页页面 * User: find35.com * Date: 15/12/26 * Time: 下午1:09 */ echo "前台首页"; echo '<pre>'; print_r($data); echo '</pre>'; ``` 此时在浏览器中输入 ```cpp http://localhost/php_mvc/home/index/cityname/shanghai/id/7 ``` 显示如下,则表示成功 ```cpp 前台首页Array ( [cityname] => shanghai [id] => 7 ) ```