Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/11/2012, 19:10
oliverf2
 
Fecha de Ingreso: octubre-2012
Ubicación: Austria
Mensajes: 47
Antigüedad: 11 años, 7 meses
Puntos: 7
Respuesta: Saber si una clase ha sido instanciada

Al final lo hize con el patron singleton, simplemente queria comprobar si habia una conexion de base de datos iniciada, este es el codigo

Código PHP:
class database {
    private 
$host;
    private 
$user;
    private 
$password;
    private 
$database;
    private 
$resultsql;
    public static 
$instance;
    public static 
$connectlink;


    private function 
__construct() { }

    public static function 
getInstance() {
        if (!isset(
self::$instance)) {
            
$db __CLASS__;
            
self::$instance = new $db;
        }
        return 
self::$instance;
    }
    public function 
connect($host,$user,$password,$database){
        
$this->host $host;
        
$this->user $user;
        
$this->password $password;
        
$this->database $database;

        
self::$connectlink mysql_connect($this->host,$this->user,$this->password) or DIE(mysql_error());

        if(!
self::$connectlink) {
            
trigger_error('A db connection is needed'E_USER_ERROR);
        }
        else {
            
mysql_select_db($this->database);
        }
    }
    
    public function 
disconnect() {
        @
mysql_close($this->connectlink);
    }
    public function 
__clone() {
        
trigger_error('Clone are not allowed'E_USER_ERROR);
    }


y para saber si la conexion esta inciada o no en ota clase uso esto:

Código PHP:
    public function __construct() {
        if (!isset(
database::$connectlink)) {
            
trigger_error('A db connection is needed for instance this class'E_USER_ERROR);

        }
    } 
Agradeceria muxo si me dijerais que fallos de disenio he cometido, puesto q estoy empezando con programacion orientada a objetos y patrones.

Muchas Gracias