#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
)
```