关键词搜索

源码搜索 ×
×

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

发布2021-01-27浏览359次

详情内容


前言

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

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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    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
            )
    
    )
    
      42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113

    查询单条数据: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
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    往期文章

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载