Что является «лучшей практикой» в отношении доступа к базе данных, когда у вас есть несколько классов с методами, выполняющими запросы?
Глобальная $db
переменная:
$db = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
class Item {
private $id;
function __construct($id) {
$this->id = $id;
}
public function remove() {
global $db;
// queries and stuff.
}
}
Или, может быть, передать $db
конструктору?
$db = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
$item = new Item(5,$db);
class Item {
private $id;
protected $db;
function __construct($id,$db) {
$this->id = $id;
$this->id = $db;
}
public function remove() {
// queries and stuff.
}
}
Или, может быть, другой способ лучше, чем оба?