我在管理一個相當古老的系統。這是一個代碼湯,我一直在重構代碼。PHP - 改進我的數據庫模型?
我在做這件事時注意到的一點是,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,並且可以將它傳遞給活動連接而不是連接細節,以便自己建立連接?
看看使用Singleton模式的數據庫連接:http://php.net/manual/en/language.oop5.patterns.php – Raz
看看爲什麼你不應該看使用數據庫連接的單例模式:http://www.google.nl/search?gcx=w&sourceid=chrome&ie=UTF-8&q=singleton+bad+practice –