码迷,mamicode.com
首页 > Web开发 > 详细

php mvc比赛列表

时间:2019-02-20 21:34:00      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:charset   ldb   classname   getc   sql语句   参数   reg   list()   user   

文件创建样式:

技术图片

new_file.php是入口文件,代码为:

<?php
//入口文件 被浏览器访问的
spl_autoload_register(‘userAutoload‘);  //注册自动加载函数  自动加载函数不用主动调用 在需要的时候自动调用
function userAutoload($classname){
    //定义确定的类和路径
    $class_list = array(
    ‘Controller‘ => FRAMEWORK_PATH.‘Controller.class.php‘,
    ‘Factory‘ => FRAMEWORK_PATH.‘Factory.class.php‘,
    ‘Model‘ => FRAMEWORK_PATH.‘Model.class.php‘,
    ‘MySQLDB‘ => FRAMEWORK_PATH.‘MySQLDB.class.php‘
    );
    if(isset($class_list[$classname])){
        require $class_list[$classname];
    }elseif(substr($classname, -10) == ‘Controller‘){  //判断是否为控制器
        require CONREOLLER_PATH.$classname.‘.class.php‘;
    }elseif(substr($classname, -5) == ‘Model‘){  //判断是否为模型类
        require MODEL_PATH.$classname.‘.class.php‘;
    }
}
//目录地址常量
define(‘ROOT_PATH‘, getcwd().‘/‘);  //定义根目录
define(‘APP_PATH‘,ROOT_PATH.‘application/‘);
define(‘FRAMEWORK_PATH‘,ROOT_PATH.‘framework/‘);


//控制器类
$c = isset($_GET[‘c‘]) ? $_GET[‘c‘] : ‘Match‘;
define("PLATFORM", isset($_GET[‘p‘]) ? $_GET[‘p‘] : ‘test‘);

//动作
$default_action = ‘list‘;  //默认值
$a = isset($_GET[‘a‘]) ? $_GET[‘a‘] : $default_action;

//平台相关路径常量
define(‘CONREOLLER_PATH‘, APP_PATH.PLATFORM.‘/controller/‘);
define(‘MODEL_PATH‘, APP_PATH.PLATFORM.‘/model/‘);
define(‘VIEW_PATH‘, APP_PATH.PLATFORM.‘/view/‘);


//调用控制器
$controller = $c.‘Controller‘;

//实例化对象
$Match = new $controller();

$action = $a.‘Action‘;
$Match->$action();

不传参数时p默认为tese c默认为Match a默认为list

实例化一个MatchController对象

MatchController类代码为:

<?php
class MatchController extends Controller{
    function listAction(){
    //查询数据
    
    $match = Factory::getDx(‘MatchModel‘); //用工厂类实例化MatchModel类对象
    //$match = new MatchModel();
    $arr = $match->getList();
    //调用模板
    require VIEW_PATH.‘match_v.html‘;
    }
    function delAction(){
        $id = $_GET[‘id‘];
        echo "id是:".$id."<br />";
        echo "比赛控制器的删除动作执行了";
//        header(‘location:new_file.php‘);
    }
}

调用MatchController父类Controller(基础控制器)的构造函数

 

<?php
//基础控制器
class Controller{
    function __construct(){
        $this->_initContentType();
    }
    function _initContentType(){
        header(‘Content-Type:text/html; charset=utf-8‘);
    }
    
    protected function _jump($url,$info=null,$wait=3){
        if($info == ‘‘){
            header(‘location:‘.$url);
        }else{
            header(‘refresh:‘.$wait.‘;url=‘.$url);
            echo $info;
        }
        die;
    }
}

 

调用Factory类getDx方法实例化一个MatchModel对象:

<?php
//工厂类
class Factory{
    /*判断模型对象有没有 有就直接返回 没有就new一个
    $model_list = array(
        ‘MatchModel‘ => new MatchModel()  键是类名,值是这个类的一个对象
    )*/
    static function getDx($className){  //$className可变类名
        static $model_list = array();
        if(!isset($model_list[$className])){
            
            $model_list[$className] = new $className;
        }
        return $model_list[$className];
    }
}

工厂类的作用就是单例模型类,传入类名,返回对象

 

引入MatchModel类,继承Model(基础模型类),当new一个对象的时候,调用Model的构造函数,连接数据库,单例话一个MySQLDB对象存在$this->_dao中,MatchModel对象调用MatchModel方法,执行sql语句,调用视图层显示在页面上:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <table width="100%" border="1" cellpadding="0" cellspacing="0">
            <tr>
                <th>队伍一</th>
                <th>比分</th>
                <th>队伍二</th>
                <th>时间</th>
            </tr>
            <!--循环遍历-->
            <?php foreach($arr as $v){ ?>
                <tr>
                    <td><a href="new_file.php?c=Team&a=list&id=1&tname=<?php echo $v[‘t1_name‘]; ?>"><?php echo $v[‘t1_name‘]; ?></a></td>
                    <td><?php echo $v[‘t1_score‘].‘:‘.$v[‘t2_score‘]; ?></td>
                    <td><?php echo $v[‘t2_name‘]; ?></td>
                    <td><?php echo date(‘Y-m-d H:i:s‘,$v[‘m_time‘]); ?></td>
                    <td><a href="new_file.php?a=del&id=1">删除</a></td>
                </tr>
            <?php } ?>    
        </table>
    </body>
</html>

 

php mvc比赛列表

标签:charset   ldb   classname   getc   sql语句   参数   reg   list()   user   

原文地址:https://www.cnblogs.com/liangdong/p/10409166.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!