Created
December 29, 2016 18:53
-
-
Save John-Henrique/c8afb84fc20aeb39f14ec5a34a8143d8 to your computer and use it in GitHub Desktop.
Exemplo de abstração de dados usando OOP
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class Db { | |
public $usuario = 'root'; | |
public $senha = ''; | |
public $base = ''; | |
public $servidor = 'localhost'; | |
/** | |
* Armazena a instância da conexão | |
*/ | |
protected $conexao = false; | |
/** | |
* Método mágico, permite chamar outros métodos ou definir valores | |
* automaticamente | |
**/ | |
protected function __construct(){ | |
/** | |
* Sempre que a classe for invocada a conexão será iniciada | |
* deixando disponivel o objeto da conexão em $this->conexao | |
*/ | |
$this->conexao(); | |
} | |
// Define o valor para usuário, desta forma pode-se defini-lo fora da classe. | |
public function setUsuario( $usuario ){ | |
$this->usuario = $usuario; | |
} | |
/** | |
* Basta seguir o mesmo para os demais | |
* public function setSenha(){} | |
* public function setServidor(){} | |
* public function setBase(){} | |
* | |
**/ | |
/** | |
* Este método só poderá ser chamado dentro | |
* da classe, nunca fora dela | |
**/ | |
protected function conexao(){ | |
$this->conexao = mysql_connect( $this->servidor, $this->usuario, $this->senha, $this->base ); | |
// verificando se existe conexão | |
if( mysqli_connect_errno() ) { | |
printf("Falha na conexão: %s\n", mysqli_connect_error() ); | |
exit(); | |
} | |
} | |
protected function consulta( $str_sql ){ | |
// realiza a consulta e retorna o resultado | |
$obj_sql = mysql_query( $this->conexao, $sql ); | |
// é importante fechar a conexão | |
mysqli_close( $this->conexao ); | |
return $obj_sql; | |
} | |
/** | |
* Imagine $filtro como sendo um meio de passar valores extras como | |
* 'AND limit = 5' | |
* ou | |
* array( | |
* 'limit' => 5 | |
* ) | |
**/ | |
public function lista_clientes( $filtro ){ | |
$sql = "SELECT * FROM clientes WHERE mesAniversario = 5 ". $filtro ; | |
return $this->consulta( $sql ); | |
} | |
} | |
/** | |
* Para usar basta num arquivo qualquer (meu_config.php) | |
* definir os dados da conexão. | |
**/ | |
$db = new Db(); | |
$db->usuario = "john"; | |
$db->senha = "henrique"; | |
$db->servidor = "mysql.johnhenrique.com.br"; | |
$db->base = "web"; | |
/** | |
* | |
* Agora resta apenas incluir este arquivo no documento principal | |
* Exemplo | |
* Na página index.php você faz um include | |
* Db.class.php | |
* meu_config.php | |
* | |
* Agora basta usar os métodos | |
**/ | |
$clientes = $db->lista_clientes(); | |
print_r( $clientes ); | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment