控制器类

思考:目前我们的一个控制器就对应着网站的一个功能(Mybank 显示),但是,一个网站有很多的功能,难道我们要为每一个功能都单独的创建一个控制器文件吗?

回答:不需要

但是,此时 我们需要引入控制器类

 

控制器类

概念

我们将一些列相关或相似的功能,使用一个控制器来处理!而该控制器内的每一个方法就对应着某一个具体的功能,比如 增加卡号,删除卡号,修改卡上金额等,可以用一个学生控制器类完成就可以

所以,控制器类是按功能来划分的!而不是像模型类是按数据表来划分的!而且,一个模型可以在再多个功能(控制器类)中使用。

第一步

创建MybankController.class.php 控制器类

<?php 

    //Mybank 相关控制器
    class MybankController
    {


        //获取Mybank列表动作
        public function showAction(){
            //调用单例工厂
            include 'Factory.class.php';
            //模型Mybank单例
            $bank= Factory::M("Mybank");
            //调用单例的方法,返回结果集rs
            $rs=$bank->showTable("select * from my_bank");

            //调用View 视图
            include 'Mybank.html';  //引入这个视图,rs 才可以使用
        }

        /**
         * 删除Mybank动作
         */

         public function deleteAction($id){
             echo "当前删除了一个卡号";
         }
    }

在上面的控制器类中,后面还可以增加Mybank的删除,增加,或者修改的动作,

到此为止,原来的控制器文件controller.php就可以删除了!

思考:

  此时,我们应该如何才能看到以前的列表?

回答:

  需要实例化MybankController.calss.php类并调用其中的showAction方法!

第二步:

  增加一个入口文件index.php

<?php 


    /**
     * 
     * 入口文件、前端控制器,代码分发器
     */
    //实例化MybankController.class.php控制器
    include './MybankController.calss.php';
    //调用showAction方法
    $action=new MybankController;
    $action->showAction();

上面的index.php从MVC的角度就叫做前端控制器、也叫入口文件

原文地址:https://www.cnblogs.com/xiaowie/p/14324224.html