前言
模块的功能通常在控制器中实现。1.创建自定义控制器
StudentController.php:
<?php
/**
* 学生模块控制器类
* 模块管理一般有:CURD增删改查
* 模型根据数据表创建,控制器根据模块创建
* 通常一个控制器完成一个模块的功能
* Class StudentController
*/
class StudentController
{
/**
* 获取所有数据
* @return mixed
*/
public function listAll()
{
// 实例化模型,获取数据
$stu = new StudentModel();
$data = $stu->getAll();
// 格式化
echo '<pre>';
print_r($data);
}
/**
* 获取单条数据
* @return mixed
*/
public function info($id=1)
{
$id = isset($_GET['id']) ? $_GET['id'] : $id;
// 实例化模型,获取数据
$stu = new StudentModel();
$data = $stu->get($id);
// 格式化
echo '<pre>';
print_r($data);
//return $data;
}
}
2.创建前端控制器实现请求分发
项目目录结构如下:
index.php:
<?php
/**
* 前端控制器,入口文件功能,请求分发器
*/
// 加载模型类
require_once 'model/Db.php';
require_once 'model/Model.php';
require_once 'model/StudentModel.php';
// 判断当前url中是否有c:controller
$controller = isset($_GET['c']) ? $_GET['c'] : 'Student';
// 给控制器添加后缀
$controller .= 'Controller';
// 加载控制器类
require_once 'controller/'.$controller.'.php';
// 获取方法
$action = isset($_GET['a']) ? $_GET['a'] : 'listAll';
// 实例化自定义控制器类
$stu = new $controller();
$stu->$action(); // 根据学生id,默认为1
3.控制器功能测试
查询所有数据:http://localhost/php.cn/mvc/
Array
(
[0] => Array
(
[id] => 1
[name] => 郭靖
[email] => guojing@php.cn
[course] => php
[grade] => 80
[create_time] => 1505054471
[update_time] => 1505054471
)
[1] => Array
(
[id] => 2
[name] => 黄蓉
[email] => huangrong@php.cn
[course] => mysql
[grade] => 88
[create_time] => 1505054471
[update_time] => 1505054471
)
[2] => Array
(
[id] => 3
[name] => 杨康
[email] => yangkang@php.cn
[course] => mysql
[grade] => 67
[create_time] => 1505054471
[update_time] => 1505054471
)
[3] => Array
(
[id] => 4
[name] => 洪七
[email] => hongqi@php.cn
[course] => php
[grade] => 35
[create_time] => 1505054471
[update_time] => 1505054471
)
[4] => Array
(
[id] => 5
[name] => 老顽童
[email] => laowantong@php.cn
[course] => html
[grade] => 78
[create_time] => 1505054471
[update_time] => 1505054471
)
[5] => Array
(
[id] => 6
[name] => 欧阳峰
[email] => ouyangfeng@php.cn
[course] => mysql
[grade] => 56
[create_time] => 1505054471
[update_time] => 1505054471
)
[6] => Array
(
[id] => 7
[name] => 杨过
[email] => yangguo@php.cn
[course] => php
[grade] => 99
[create_time] => 1505054471
[update_time] => 1505054471
)
[7] => Array
(
[id] => 8
[name] => 小龙女
[email] => xiaolongnv@php.cn
[course] => html
[grade] => 80
[create_time] => 1505054471
[update_time] => 1505054471
)
[8] => Array
(
[id] => 9
[name] => 张无忌
[email] => zhangwuji@php.cn
[course] => mysql
[grade] => 63
[create_time] => 1505054471
[update_time] => 1505054471
)
[9] => Array
(
[id] => 10
[name] => 赵敏
[email] => zhaomin@php.cn
[course] => php
[grade] => 80
[create_time] => 1505054471
[update_time] => 1505722385
)
)
查询单条数据:http://localhost/php.cn/mvc/?a=info&id=9
Array
(
[id] => 9
[name] => 张无忌
[email] => zhangwuji@php.cn
[course] => mysql
[grade] => 63
[create_time] => 1505054471
[update_time] => 1505054471
)