Bueno he hecho las correcciones, ademas lo he problado y funciona perfectamente.
Código PHP:
Ver original//clase que hace la conexion
class conectarpdo{
private $base;
private $usuario;
private $pass;
function __construct(){
$this->base="mibase";
$this->usuario="myuserl";
$this->pass="mypassword";
}
public function conectar(){
$conectar=new PDO('mysql:host=localhost;dbname='.$this->base,$this->usuario,$this->pass);
return $conectar;
}
}
La clase Registry con algun cambio en el metodo has (me gusta mas asi)
Código PHP:
Ver originalclass Registry {
private $_cache;
public function __construct() {
}
public function set($key, $item) {
$this->_cache[$key] = $item;
}
public function get($key) {
return $this->_cache[$key];
}
public function has($key) {
if(!empty($this->_cache
[$key])) {
return true;
}
else{
return false;
}
}
}
Asi es su uso:
Código PHP:
Ver original$uno = new conectarpdo();
$conexion = $uno->conectar();
$Registry = new Registry();
if (!$Registry->has('conexion')) {
$Registry->set('conexion', $conexion);
}
// Mas adelante
$conexion = $Registry->get('conexion');
$datito = 27;
//en $conexion tengo una conexion PDO y puedo utilizarla por ej. para hacer un select.
$consulta=$conexion->prepare('select * from administradores where id =:id');
$consulta->bindParam(':id',$datito);
$consulta->execute();
while($fila=$consulta->fetch()){
etc. etc.
//en la misma pagina otra
$lamismaconexion = $Registry->get('conexion');
//en $lamismaconexion tengo ahora la conexion PDO y puedo utilizarla por ej. para hacer otro select.
$consulta=$lamismaconexion->prepare( etc. etc.
Bueno asi ha quedado, si ven algo a corregir por favor avisar.
Saludos.