Ich habe DB-Klasse, die wie dieMit DB-Verbindung überall innerhalb PHP-Anwendung
class db {
protected $db;
public function __construct() {
$this->connect();
}
protected function connect() {
$this->db = new MySQLi(db_host, db_user, db_pass, db_name) or die($this->db->error);
$this->db->set_charset('utf8');
}
}
Jede Klasse in meiner PHP-Anwendung sieht erweitert diese db Klasse
Wie
class registration extends db {
var $validation;
function __construct() {
parent::__construct();
$this->validation = new validation();
...
und Validierung Aussehen wie das
class validation extends db {
var $ajax, $common;
function __construct() {
parent::__construct();
...
Fehlermeldung "Zu viele Verbindungen". Ich fühle, dass dies nicht der richtige Ansatz ist: Ich verbinde mich jedes Mal mit db. Was ist Ihrer Meinung nach richtig? Ist es möglich, 1 Mal zu definieren ('db', ...) und überall in der App zu verwenden?
kann ich db verbindung definieren? – heron
Ja, die 'db' Klasse ist im Wesentlichen unverändert von ihrem aktuellen Design. Sie ändern einfach, wie es sich auf den Rest des Codes in Ihrer Anwendung bezieht. – quickshiftin
Ein "Problem" bei diesem Ansatz ist, dass _any_ class Zugriff auf die Datenbankressource hat. Sie können keine Verbindung zu einer zweiten Datenbank herstellen. Und Sie können nicht Ihren Code eine Unterklasse von 'db' verwenden. Die Abhängigkeitsinjektion wird allgemein als ein überlegenes Paradigma angesehen, insbesondere im Hinblick auf Modularität, Wartung und Tests. – Halcyon