目标 :
演示基础模型类做法:
mvc典型案例分析笔记:数据库的添加数据中有如下代码是重叠的:
<?php
require './MySQLDB.class.php';
class UserModel{
function GetAllUser(){
$config = array(
'host' => "localhost",
'port' => 3306,
'user' => "root",
'pass' => "root",
'charset' => "utf8",
'dbname' => "php39"
);
$sql = "select * from user_list;";
$db = MySQLDB::GetInstance($config);
$data = $db->GetRows($sql);
return $data;
}
function GetUserCount(){
$config = array(
'host' => "localhost",
'port' => 3306,
'user' => "root",
'pass' => "root",
'charset' => "utf8",
'dbname' => "php39"
);
$sql = "select count(*) as c from user_list;";
$db = MySQLDB::GetInstance($config);
$data = $db->GetOneData($sql);
return $data;
}
function GetUserInfoById($id){
//......
}
function GetUserInfoByUserName($name){
//......
}
}
注解:红色部分是重叠的。
如何减少代码冗余部分?
解决方法:
1.建立一个基础模型类
<?php
require './MySQLDB.class.php';
class BaseModel{
//这个,用于存储数据库工具类的实例(对象)
protected $db = null;
function __construct(){
$config = array(
'host' => "localhost",
'port' => 3306,
'user' => "root",
'pass' => "root",
'charset' => "utf8",
'dbname' => "php39"
);
$this->db = MySQLDB::GetInstance($config);//
}
}
?>
如图所示:
UserModel.class.php的简化
<?php
require './BaseModel.class.php';
class UserModel extends BaseModel{
function GetAllUser(){
$sql = "select * from user_list;";
//$db = MySQLDB::GetInstance($config);
$data = $this->db->GetRows($sql);
return $data;
}
function GetUserCount(){
$sql = "select count(*) as c from user_list;";
//$db = MySQLDB::GetInstance($config);
$data = $this->db->GetOneData($sql);
return $data;
}
function GetUserInfoById($id){
//......
}
function GetUserInfoByUserName($name){
//......
}
}
?>