Estoy programando y me entro una duda, ¿cual de las siguientes formas de utilizacion de clases es mas eficiente y utiliza menos recursos y conexiones?
Agradeceria mucho su ayuda.
NOTA 1: todos mentodos de las clases existen asi no esten definidos.
NOTA 2: Cada clase esta en un archivo distinto
FORMA 1:
Código PHP:
// bd.php
class bd {
public $l;
function __construct() {
$this->l = mysql_connect(...)
...
}
function consulta($sql) {
$this->l->mysql_query(...);
...
}
}
// ip.php
class ip {
function get_ip() { ... }
}
// usuario.php
class usuario extens bd {
function crear_usuario($usr) {
$this->consulta("sentencia sql");
...
$ip = ip::get_ip();
}
}
// sesion.php
class sesion extends bd {
function registrar_sesion($usuario) {
$this->consulta("sentencia sql");
...
$ip = ip::get_ip();
}
}
// index.php
require 'bd.php';
require 'ip.php';
require 'usuario.php';
require 'sesion.php';
$usu = new usuario();
$ses = new ses();
Código PHP:
// bd.php
class bd {
public $l;
function __construct() {
$this->l = mysql_connect(...)
...
}
function consulta($sql) {
$this->l->mysql_query(...);
...
}
}
// ip.php
class ip {
function get_ip() { ... }
}
// usuario.php
class usuario {
private l;
function __construct($link) {
$this->l = $link;
}
function crear_usuario($usr) {
$this->l->consulta("sentencia sql");
...
$ip = ip::get_ip();
}
}
// sesion.php
class sesion {
private l;
function __construct($link) {
$this->l = $link;
}
function registrar_sesion($usuario) {
$this->l->consulta("sentencia sql");
...
$ip = ip::get_ip();
}
}
// index.php
require 'bd.php';
require 'ip.php';
require 'usuario.php';
require 'sesion.php';
$bd = new bd();
$usu = new usuario( $bd );
$ses = new ses( $bd );
Hablando con un amigo, me dijo que a el le parecia que de la FORMA 1, cada clase hija de bd creaba una conexion a la base de datos, mientras que la FORMA 2, solo creaba 1 y la compartia, asi que la FORMA 2 era las eficiente.
O ¿cual otra forma me recomiendan?
De antemano gracias por su ayuda.