Ver Mensaje Individual
  #10 (permalink)  
Antiguo 29/10/2007, 17:47
oVuzZ
 
Fecha de Ingreso: octubre-2007
Mensajes: 21
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Duda - CLASES

ya miren mi codigo es asi
Claro las funciones son muy basicas pero para ejemplo vale

Mi Singleton
Código PHP:
<?
class Singleton {
       public static 
$config;
       private static 
$_instance null;
       
       private function 
__construct() {}
      
      public static function 
getInstance() {
               if( !
self::$_instance instanceof self ) {
                        
self::$_instance = new self();
               }

               return 
self::$_instance;
       }

       public function 
setParam($option,$value) {
              
$this->config[$option] = $value;
       }
       
       public function 
getParam($option) {
              return 
$this->config[$option];
       }
}  
?>
Mi Clase DB
Código PHP:
<?
class DB Extends Singleton{
    
    public function 
connect()    {
    
        
$obj Singleton::getInstance();
    
        
$r = &$obj->config;
            
        
extract($rEXTR_SKIP);    
        
        
$this->dbh mysql_connect($dbhost,$dbuser,$dbpwd);
        
        if ( ! 
$this->dbh ){
            echo 
"error";
        }

        
$this->select($dbname);
        
    }

    public function 
select($db){
        
mysql_select_db($db,$this->dbh);
    }
    
    public function 
query($query){
        
        
$this->result mysql_query($query,$this->dbh);
        
    }
    
}
?>
mi Index
Código PHP:
<?

include 'singleton.php';
include 
'db.php';

$obj Singleton::getInstance();

/*configuracion*/
$obj->setParam("dbuser","root");
$obj->setParam("dbhost","localhost");
$obj->setParam("dbpwd","");
$obj->setParam("dbname","wp");

$mysql DB::getInstance();

$mysql->connect();

$result $mysql->query("SELECT * FROM wp_users");

$row mysql_fetch_row($result);
    
    echo 
$row[0]; 
    echo 
$row[1]; 

?>
pero me bota este error

Fatal error: Call to undefined method Singleton::connect()

Claro Singleton no tiene la funcion connect pero yo llamo

Código PHP:
$mysql->connect(); 

otra cosa el

Código PHP:
public function connect()    {
    
        
$obj Singleton::getInstance(); 
lo puedo cambiar por

Código PHP:
public function connect()    {
    
        
$obj parent::getInstance(); 
creo ke funcionaria pero no me rula el codigo...

probe quitandole el Extends Singleton y instanciando db en ves de

Código PHP:
$mysql DB::getInstance();
//por
$mysql = new DB
pero yo quiero eredarlo no se puede?

yo pienso que es tendria que llamarlo con self pero nos e como