He sido programador de procedimientos por más de 4 años y es hora de comenzar a buscar OOP. Dicho esto, supongamos que necesito llamar a dos métodos en mi clase. Cada método requiere una conexión con el DB, por lo que son dos viajes al DB, que también abre conexiones múltiples. ¿Se puede evitar esto teniendo algún tipo de código en la capa de la aplicación (constructor?) O ¿se debe configurar un grupo de conexiones en el lado de la base de datos? Y solo por diversión, no estoy usando mysql; Estoy usando mongodb con codeigniter.Cómo evitar la apertura de conexiones múltiples a la base de datos con OOP PHP
Esto es lo que tengo hasta ahora, ¿no estoy seguro si es ideal para usar?
Aquí es donde puedo configurar mi información DB:
database_conn.php archivo de modelo
class Database_Conn extends Model {
function _connect() {
$m = new Mongo("localhost:27017", array("persist"=>"x"));
$db = $m->selectDB("foo");
return $db;
}
}
muestra
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;
}
}
pensé que esto es malo para las aplicaciones que finalmente necesita escalar? – luckytaxi
singleton es una forma de crear un objeto que se crea una instancia exactamente una vez. ¿cómo puede reducir la escalabilidad? por favor dime) –
Lo siento, estaba pensando en otra cosa (no preguntes). Entiendo lo que dices, creo que lo estoy haciendo ahora. Echa un vistazo a mi código de arriba. Gracias. – luckytaxi