PHP -改进我的数据库模型


PHP - Improving my database model?

我正在管理一个相当旧的系统。它现在是一个代码汤,我一点一点地重构代码。

当我这样做的时候,我注意到90%的查询是CRUD。没有连接,没有别的。都是很简单的东西。

作为结果,我创建了一个模型类,它涵盖了这些类型的查询。然后为每个表扩展模型类。

class Model extends MySQLi {
    public function __construct() {
        global $site;
        $mysql = $site['mysql'];
        parent::__construct($mysql['host'], $mysql['user'], $mysql['pass'], $mysql['db']);
    }

我不喜欢使用全局变量,但它确实允许我这样做,而不必担心连接细节。

<?php
class Contact extends Model {
    public $table = 'contact';
}
$Contact = new Contact;
$Contact->get(array('where'=>array('id >' => 4), 'limit' => array(0, 20));

我担心的是,如果一个脚本需要3个表。我将使用3个模型,因此肯定意味着我将有3个独立的数据库连接?每个班一个?

这会像我想的那样是个问题吗?

是否有一个工作,这将允许我继续扩展MySQLi,也许通过它一个活动的连接,而不是连接的详细信息,使它自己的连接?

不要扩展Mysqli,只把它包含在你的模型中。

class Model {
    protected $db;
    public function __construct($db) {
        $this->db = $db;   // the mysqli instance.
    }
    .....
}