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

来源:互联网 发布:申万宏源证券软件下载 编辑:程序博客网 时间:2024/06/05 21:08

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

Model

新建model/index.model.php:

<?phpclass 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 框架算是基本完成了,感谢!

原创粉丝点击