控制器类
思考:目前我们的一个控制器就对应着网站的一个功能(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的角度就叫做前端控制器、也叫入口文件