Ich bin seit mehr als 4 Jahren ein prozeduraler Programmierer und es ist Zeit, in OOP zu suchen. Sagen wir also, ich musste zwei Methoden in meiner Klasse aufrufen. Jede Methode benötigt eine Verbindung zur DB, so dass zwei Fahrten zur DB stattfinden, die auch mehrere Verbindungen öffnet. Kann dies vermieden werden, indem eine Art von Code in der Anwendungsschicht (Konstruktor?) Oder muss ein Verbindungspool auf der DB-Seite eingerichtet werden? Und nur zum Spaß, ich benutze nicht mysql; Ich benutze mongodb mit codeigniter.Wie zu vermeiden, mehrere Verbindungen zur DB mit OOP zu öffnen PHP
Hier ist, was ich bisher habe, nicht sicher, ob es ideal zu verwenden ist?
Hier ist, wo ich mein Setup DB Info:
database_conn.php
class Database_Conn extends Model {
function _connect() {
$m = new Mongo("localhost:27017", array("persist"=>"x"));
$db = $m->selectDB("foo");
return $db;
}
}
Probe Modelldatei
class Home_model extends Model {
public function __construct() {
// Establish connection to "profiles" table
$this->db_conn = Database_Conn::_connect()->selectCollection("profiles");
}
function getMyProfile($username) {
$data = $this->db_conn->findOne(array("username" => $username));
return $data;
}
function getAll() {
$data = $this->db_conn->find();
return $data;
}
}
Ich dachte, das ist schlecht für Apps, die irgendwann skalieren müssen? – luckytaxi
Singleton ist eine Möglichkeit, ein Objekt zu erstellen, das genau einmal instanziiert wird. Wie kann es die Skalierbarkeit reduzieren? Bitte sagen Sie mir) –
Sorry, ich dachte an etwas anderes (nicht fragen). Ich verstehe, was du sagst, ich denke, dass ich das jetzt tue. Schau dir meinen obigen Code an. Vielen Dank. – luckytaxi