php mvc比赛列表

Posted 梁栋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php mvc比赛列表相关的知识,希望对你有一定的参考价值。

文件创建样式:

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比赛列表的主要内容,如果未能解决你的问题,请参考以下文章

使用 json rereiver php mysql 在片段中填充列表视图

VSCODE 片段 PHP 自动填充命名空间

ASP.net MVC 代码片段问题中的 Jqgrid 实现

两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。 已抽签决定比赛名单。有人向队员打听比赛的名单。 a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。(代码片段

用于 WordPress 的 PHP 片段,用于获取所有产品子类别

php_mvc实现步骤五