本教程示例代码见 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 框架算是基本完成了,感谢!