假设我们有一个MVC模式。如果我们有这样的事情:
blog_controller.php
<?php
class c_blog{
private $model;
public function __construct(){
include( [model_path] );
$this->model = new m_blog();
}
public function post_list(){
return $this->model->get_list();
}
}
blog_model.php
<?php
class m_blog{
public function get_list(){
global $db;
$sel = $db->query("...");
$sel = $db->fetch_array($sel);
return $sel;
}
}
的index.php
<?php
$db = new database();
include "blog_controller.php";
$blog = new c_blog();
var_dump( $blog->post_list() );
?>
为什么以上示例不好,很多开发人员想要OOP
class m_blog extends database{}
?
我只想要优点和缺点,因为我在超过15个流量高的网站上使用这种“担心”方法而且我没有问题(其中一些网站使用多数据库并且很容易改变全局{ {1}},全球$db
。)
谢谢!
答案 0 :(得分:0)
为什么不使用继承?
<?php
class model {
private $db;
public function __construct() {
$this->initDb();
}
private function initDb();
}
class c_blog {
private $model;
public function __construct(){
include( [model_path] );
$this->model = new m_blog();
}
public function post_list(){
return $this->model->get_list();
}
}
class m_blog extends model{
public function __construct() {
parent::__construct;
}
public function get_list(){
$sel = $this->db->query("...");
$sel = $this->db->fetch_array($sel);
return $sel;
}
}