Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Duda con Singleton y PDO

Estas en el tema de Duda con Singleton y PDO en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos. Este es mi primer post y seguramente no el ultimo. He estado viendo las ventajas de usar PDO y son muchas.... El ...
  #1 (permalink)  
Antiguo 07/09/2007, 14:50
 
Fecha de Ingreso: marzo-2006
Mensajes: 47
Antigüedad: 18 años, 1 mes
Puntos: 0
Duda con Singleton y PDO

Hola a todos. Este es mi primer post y seguramente no el ultimo.
He estado viendo las ventajas de usar PDO y son muchas.... El tema es que he querido hacer una serie de pruebas usando PDO y el patron Singleton y me he encontrado con un problema.
Usando de ejemplo la clase que publico en su blog "GatorV", cuando la quiero usar me salta el siguiente error:

"Fatal error: Access level to DB::__construct() must be public (as in class PDO)"

Para usar esa clase escribo el siguiente codigo
Código PHP:
include('db.class.php');

$bd DB::getInstance(); 
Y para los que no la han visto la clase es:
Código PHP:
class DB extends PDO {
private static 
$_instance null;

private function 
__construct() {
// Obtenemos el Config desde un array, clase config etc:
$config Config::getInstance();
$db $config->DBName;
$user $config->UserName;
$pwd $config->Password;

$attrs = array();
$dsn 'mysql:host=localhost;dbname=' $db;

parent::__construct$dsn$user$pwd$attrs );
$this->setAtributePDO::ATTR_ERRMODEPDO::ERR_MODE_EXCEPTION );
}

public static function 
getInstance() {
if( 
self::$_instance == null ) {
self::$_instance = new self();
}

return 
self::$_instance;
}

En este momento estoy usando wamp5 con php5.2.3 y el driver para mysql es 5.0.37.

Desde ya muchas gracias
  #2 (permalink)  
Antiguo 07/09/2007, 14:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Duda con Singleton y PDO

Cambia el constructor de private function a public function, se me olvido cambiar en mi blog que si extiendes de PDO y marcas el constructor como privado no funciona del todo correctamente (te lanza ese error).

Aunque puedes seguir usando el patron Singleton sin problemas.

Saludos.
  #3 (permalink)  
Antiguo 07/09/2007, 15:00
 
Fecha de Ingreso: marzo-2006
Mensajes: 47
Antigüedad: 18 años, 1 mes
Puntos: 0
De acuerdo Re: Duda con Singleton y PDO

Muchas gracias, GatorV..... y que velocidad!!!
  #4 (permalink)  
Antiguo 18/09/2007, 10:46
 
Fecha de Ingreso: septiembre-2007
Ubicación: Barranquilla-Colombia
Mensajes: 2
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Duda con Singleton y PDO

hola necesito saber como usar pdo q necesito tener en mi pc o si solo usando php 5 lo puedo haer???
  #5 (permalink)  
Antiguo 18/09/2007, 10:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Duda con Singleton y PDO

Necesitas tener la extension de PDO habilitada, y los drivers que vayas a utilizar para conectarte.

Saludos.
  #6 (permalink)  
Antiguo 24/09/2007, 10:00
 
Fecha de Ingreso: octubre-2004
Mensajes: 10
Antigüedad: 19 años, 6 meses
Puntos: 0
Re: Duda con Singleton y PDO

hola, mi me tira el siguiente error, alguno tiene idea?

Fatal error: Call to undefined method DB::setAtribute() in C:\xampp\htdocs\www\interdac\justi\engine\DB.class .php on line 16

estoy usando la misma clase
  #7 (permalink)  
Antiguo 24/09/2007, 10:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Duda con Singleton y PDO

Si estas extendiendo de la clase PDO?

Saludos.
  #8 (permalink)  
Antiguo 24/09/2007, 11:22
 
Fecha de Ingreso: octubre-2004
Mensajes: 10
Antigüedad: 19 años, 6 meses
Puntos: 0
Re: Duda con Singleton y PDO

si si, uso la misma clase que publicaron aca (sacada de tu blog).

Quice hacer unas pruebas con eso que explicabas ahi, y no hubo caso :P
  #9 (permalink)  
Antiguo 24/09/2007, 11:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Duda con Singleton y PDO

Es muy raro, que version de PHP manejas?

Saludos.
  #10 (permalink)  
Antiguo 24/09/2007, 12:03
 
Fecha de Ingreso: octubre-2004
Mensajes: 10
Antigüedad: 19 años, 6 meses
Puntos: 0
Re: Duda con Singleton y PDO

PHP Version 5.2.2

tengo correindo XAMPP Version 1.6.2.

Igual voy a probar correrlo en el servidor de produccion que ahi esta instalado todo en un server bajo linux, configurado por alguien que sabe jeje.
Ahora en un rato comento si tuve suerte ahi o no.
  #11 (permalink)  
Antiguo 24/09/2007, 12:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Duda con Singleton y PDO

Tienes habilitada la extension pdo?

Prueba algo asi simple:
Código PHP:
$algo = new PDO('mysql:host=localhost;dbname=test''root''' ); 
Te tira algun error?

Saludos.
  #12 (permalink)  
Antiguo 24/09/2007, 12:17
 
Fecha de Ingreso: octubre-2004
Mensajes: 10
Antigüedad: 19 años, 6 meses
Puntos: 0
Re: Duda con Singleton y PDO

ahi me fijé en el server de produccion y tambien me tira error (igual no se cual es porque esta que no muestre errores y tampoco lo puedo modificar a eso con error_reporting(E_ALL)).

Con respecto a lo ultimo que me decis que pruebe, no me tira ningun error, de hecho conecta bien, si yo le paso valores errones de la db me tira error, si le pongo los datos posta para conexion, funciona derechito, el problema lo tiene con el setAtribute :P
  #13 (permalink)  
Antiguo 24/09/2007, 12:23
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 18 años, 8 meses
Puntos: 2
Re: Duda con Singleton y PDO

Es que Attribute va con doble t ... debería ser setAttribute

Saludos!
__________________
R4DS en español | R4DS en inglés
  #14 (permalink)  
Antiguo 24/09/2007, 12:34
 
Fecha de Ingreso: octubre-2004
Mensajes: 10
Antigüedad: 19 años, 6 meses
Puntos: 0
Re: Duda con Singleton y PDO

gracias, ahi funciono con la doble T.

En realidad tuve otro error despues de que paso esa parte en PDO::ERR_MODE_EXCEPTION, pero lo busque en php.net y era PDO::ERRMODE_EXCEPTION, sin el _

funciono perfecto, gracias GatorV por la dedicacion y zaqpz :D
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 15:04.