用composer搭建php框架(五)--MVC之模型

本文介绍了一个简单的PHP框架的搭建过程,包括模型层的定义、数据库连接的实现以及使用Adodb进行数据库操作的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本教程示例代码见 github:https://github.com/xdlmr/myframe

Model

新建model/index.model.php:

<?php

class IndexModel {
    public function doSomething(){
        return "model doing!!!"  ;      
    }
}

修改index.controller.php的doSomething方法:

public function doSomething($req){
        $res=Box ::getObject('index', 'model') ->doSomething();
        return ['code' => CODE_SUCCESS, 'msg' =>$res ];
    }

运行:
这里写图片描述

安装Adodb

使用adodb数据库引擎https://github.com/ADOdb/ADOdb,用composer安装:composer require adodb/adodb-php。

数据库连接类

这里我使用的是pgsql,common下新建db.php:

<?php

/**
 * medoo数据库类
 */

/*class DB {
    private static $_instances = [];

    public function __construct() {
    }

    public static function getInstance($database = DB_NAME) {
        // var_dump($database);
        if(!isset(self ::$_instances[$database]) || is_null(self ::$_instances[$database])) {
            $db = new \Medoo\Medoo([
                'database_type' => DB_TYPE,
                'database_name' => DB_NAME,
                'server' => DB_IP,
                'port' => DB_PORT,
                'username' => DB_USERNAME,
                'password' => DB_PASSWORD,
                'charset' => 'utf8'
            ]);
            self ::$_instances[$database] = $db;
        }
        return self ::$_instances[$database];
    }

    public function __clone() {
    }
}*/



//创建adodb数据库连接
class DB{
    private static $_instances = [];

    private function __construct() {
    }

    public static function getInstance ($database = DB_NAME,$driver = DRIVER) {
        if ( !isset(self::$_instances[$database]) || is_null(self::$_instances[$database]) ) {
            $db = NewADOConnection($driver);
            $link = $db->Connect(DB_IP . ':' . DB_PORT, DB_USERNAME, DB_PASSWORD, $database);
            $db->SetFetchMode(ADODB_FETCH_ASSOC);
            self::$_instances[$database] = $db;
        }
        return self::$_instances[$database];
    }

    public function __clone(){}
}
?>

composer.json添加”common/db.php”,执行composer dump-autoload自动加载db.php;

连接数据库

index.model.php修改为:

<?php

    class IndexModel {

        private $_db;
        function __construct() {
             $this->_db = DB::getInstance();
        }

        public function doSomething(){
            $sql = "select * from users";
            $res = $this->_db->getAll($sql);
            return $res;
        }
    } 

运行:
这里写图片描述

最后

到了这里,一个丰满的可以上手使用的 PHP 框架算是基本完成了,感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fontstyle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值