Interpretando var_dump, e verificando classes OOP
Olá pessoal tudo joia..
O seguintes, fiz esta classe pensando em não ter que ficar implementando cada classe com o padrão singleton, para diversos fins, mas as classes que serão instanciadas terão um metodo em comum que podem ser implementados com uma interface ou não.
"Seria este metódo SetConexao();'
Bom este é o código que gostaria que vocês dessem uma olhada, a classe que implementa o db e produz uma fábrica de objetos.
<?php
function __autoload($class) {
require_once($class.'/'.$class.'.class.php');
}
/**
* Enter description here...
*
*/
class ImplementaDb
{
private static $instancia = array();
private function __construct($type){
self::$instancia[$type] = eval($type.'::SetConexao();');
}
public static function GetDrive($type)
{
if (!array_key_exists($type,self::$instancia))
{
self::$instancia[$type] = new self($type);
}
return self::$instancia[$type];
}
private function __clone()
{
trigger_error('Clone is not allowed.', E_USER_ERROR);
}
}
$d = ImplementaDb::GetDrive('mysql');
$d2 = ImplementaDb::GetDrive('postgres');
$d = ImplementaDb::GetDrive('mysql');
$d = ImplementaDb::GetDrive('postgres');
var_dump($d2,$d);ou
$d1 = ImplementaDb::GetDrive('mysql');
$d2 = ImplementaDb::GetDrive('postgres');
$d3 = ImplementaDb::GetDrive('mysql');
$d4 = ImplementaDb::GetDrive('postgres');
//Segue a class mysql, a class postgres é identica..
<?php
//Singleston
class mysql extends mysqli {
private static $instance;
private function __construct(){
echo 'Estou usando o drive do mysql!';
}
public static function SetConexao(){
self::$instance = new mysql();
}
// Previne que o usuário clone a instância
private function __clone()
{
trigger_error('Clone is not allowed.', E_USER_ERROR);
}
}
Outra é o var_dump que usei, não consegui entender o resultado dele.
var_dump($d2,$d);
bject(ImplementaDb)#3 (0) {
}
object(ImplementaDb)#3 (0) {
}
Discussão (1)
Carregando comentários...