《php从零开始开发属于自己的php框架》课程笔记3——实现模块的功能


前言

模块的功能通常在控制器中实现。

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
)

往期文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦里逆天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值