Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/03/2014, 01:12
mmarulanda
 
Fecha de Ingreso: noviembre-2007
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Información Manejando Clases en php

Cordial Saludo.

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->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(); 
FORMA 2:
Código PHP:
// bd.php
class bd {
    public 
$l;
    function 
__construct() {
        
$this->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->$link;
    }
    function 
crear_usuario($usr) {
        
$this->l->consulta("sentencia sql");
        ...
        
$ip ip::get_ip();
    }
}

// sesion.php
class sesion {
    private 
l;
    function 
__construct($link) {
        
$this->$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 ); 
Quiero saber cual de las dos es mas eficiente.
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.