Na semana passada introduzimos um novo assunto aqui no Escola Criatividade, podemos mostrar mais sobre PHP Orientado a Objetos, uma forma muito mais prática e atualizada de programar, seja em PHP, seja em qualquer outra linguagem. Dando continuidade ao assunto hoje iremos mostrar a programação orientada a objetos de uma forma mais prática, mostrando como criar uma classe de conexão com o banco de dados, isso irá clarear ainda mais o assunto para aqueles que ainda não estão tão acostumados a programar em PHP desta maneira. Veremos que possuindo uma classe deste gênero, o programador terá muito menos trabalho na hora de se conectar a um banco de dados além de ter um código organizado e com fácil manutenção, afinal tudo relacionado ao banco de dados estará nesta classe.
PORQUE SE CONECTAR AO BANCO DE DADOS UTILIZANDO OO?
Como foi falado no artigo que introduziu o assunto de orientação a objetos, podemos perceber que um código utilizando este padrão de programação possui uma manutenção muito mais facilitada, já que teremos um código organizado e bem modularizado. Com banco de dados não é diferente. Quantas vezes um programador não se depara com um projeto em que em todas as páginas o antigo programador faz uma conexão com o banco de dados e a manutenção é um verdadeiro pesadelo? Utilizando uma classe para isso, você pode centralizar a lógica de conexão com o banco de dados em um só lugar fazendo com que a pessoa que irá realizar a manutenção mais a frente não tenha tanta dificuldade. E esta pessoa pode ser você.
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Para se conectar a um banco de dados precisamos utilizar um. Para este exemplo irei utilizar o MySQL, que é um dos sistemas de gerenciamento de bancos de dados que considero mais fantásticos do mundo, além de ser grátis é um banco de dados que possui todas as características que um bom SGBD precisa. Outro fator de muita importância é o fator que o MySQL ter a conexão com o PHP muito facilitada, pouquíssimas vezes tive problemas com o MySQL, assim como tenho com Oracle ou mesmo o SQL Server
Para que se programe em qualquer linguagem é necessário ter um ambiente totalmente configurado e preparado para receber os programas criados, para que sejam testados e executados. Para que você consiga realizar a conexão com o banco de dados é necessário ter um ambiente Apache + PHP + MySQL preparado, existem diversos pacotes na internet que proporcionam um ambiente totalmente configurado utilizando apenas um instalador, como é o caso do WAMP, XAMPP, na internet também é possível encontrar diversos tutoriais de como instalar estes pacotes ou mesmo realizar a instalação de cada um dos pacotes, separadamente. Também é necessário ter conhecimentos básicos em PHP e sobre o funcionamento de bancos de dados. Aqui mesmo no Escola Criatividade já tivemos artigos que auxiliam neste aspecto e recomendo que faça a leitura dos mesmos para que tenha o conhecimento necessário para tal.
Mostraremos a classe por completo e mais abaixo iremos fazer toda a análise da classe para que não reste nenhuma dúvida da lógica utilizada. Perceba que esta classe é apenas o mais básico necessário para a conexão ao banco de dados e a mesma pode ser customizada para a utilização mais específica.
Depois de toda a declaração da classe e comentários iniciais, temos da linha 13 até a linha 17, a declaração das variáveis que iremos utilizar na classe, são principalmente variáveis de conexão com o banco de dados MySQL, se um destes valores forem passados de maneira inadequada, certamente a conexão não irá ser possível. Perceba que toda a classe é devidamente comentada, isso ajuda também na manutenção e também no entendimento de quem irá dar manutenção posteriormente.
Na linha 19, podemos encontrar a classe de conecta de fato ao banco de dados, partindo das informações contidas nas variáveis de conexão, o PHP tentará um conexão ao banco de dados, caso isto não seja possível é chamado o método die(). A função die() aborta imediatamente a execução da aplicação, utilizar este método nestas situações é perfeitamente correto, já que não como o sistema funcionar sem uma conexão com o banco de dados, em outros casos de erros menos graves uma estrutura try-catch se mostra mais eficiente já que o programa não precisa ser interrompido totalmente.
Na linha 28, temos a função selecionarDB(), esta função fará a seleção do banco de dados com que se deseja trabalhar neste caso. Muitos não entendem muito bem porque é necessário se conectar ao banco de dados e depois ainda temos que selecionar o “banco” que queremos utilizar. Isto acontece porque quando nos conectamos a um SGBD com uma combinação de usuário e senha, possuímos permissão a um ou mais schemas (bancos), e temos que selecionar o qual desejamos trabalhar e realizar nossas consultas. A função retorna true (verdadeiro), caso o retorna seja um objeto de banco de dados válido e false (falso) se algo der errado com a execução. Mais uma vez é utilizado o método die(), pelos mesmos motivos citados acima.
A função executar() é mostrada na linha 42, esta função basicamente realizar consultas ao banco de dados, tendo uma string SQL como parâmetro. Lembrando que o conceito de consulta em banco de dados nem sempre está relacionado a uma consulta (resgate de dados já cadastrados), uma consulta pode também ser uma inserção de dados ou mesmo a atualização de dados cadastrados anteriormente.
A função set() é utilizada para atribuir os valores as variáveis utilizadas na classe. Isso evita que precisemos incluir um set para cada variável já que passamos também por parâmetro na função a propriedade que queremos alterar. Precisamos de métodos para alterar o valor destas variáveis porque determinamos que as mesmas seriam do tipo private.
Para demonstrar o funcionamento da classe proposta neste artigo, criamos um novo arquivo PHP, podendo ser index.php, dentro da mesma pasta da classe criada. A primeira coisa a ser feita é realizar a inclusão do arquivo que contem a nossa classe. Depois criamos uma instância da classe connectBD. Nas cinco linhas seguintes são feitas as atribuições das variáveis necessárias para realizar a conexão ao banco de dados. Nas linhas 11 e 12 são efetuadas os métodos para se conectar ao banco de dados e depois feita a seleção do banco de dados. Ao fim é feita uma pequena impressão para mostrar que realmente a conexão com o banco de dados foi bem sucedida.
Neste artigo aprendemos a criar uma classe de conexão e execução de consultas no banco de dados totalmente orientado a objetos, para isto utilizamos o MySQL como exemplo mas o exemplo pode ser estendido aos demais bancos dados que o PHP possui suporte. Também criamos um programa PHP para testar o funcionamento da classe e se você tiver realizado todas as codificações corretamente terá sucesso e o mesmo exibirá a quantidade de bancos de dados existentes na sua instalação do MySQL. Nos próximos artigos iremos abordar muito mais aspectos relativos a utilização do PHP orientado a objetos. Também mostraremos alguns frameworks que utilizam orientação a objetos e que facilitam e muito o desenvolvimento ágil, fique no aguardo.
Abraços!
PORQUE SE CONECTAR AO BANCO DE DADOS UTILIZANDO OO?
Como foi falado no artigo que introduziu o assunto de orientação a objetos, podemos perceber que um código utilizando este padrão de programação possui uma manutenção muito mais facilitada, já que teremos um código organizado e bem modularizado. Com banco de dados não é diferente. Quantas vezes um programador não se depara com um projeto em que em todas as páginas o antigo programador faz uma conexão com o banco de dados e a manutenção é um verdadeiro pesadelo? Utilizando uma classe para isso, você pode centralizar a lógica de conexão com o banco de dados em um só lugar fazendo com que a pessoa que irá realizar a manutenção mais a frente não tenha tanta dificuldade. E esta pessoa pode ser você.
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
MySQL
Para se conectar a um banco de dados precisamos utilizar um. Para este exemplo irei utilizar o MySQL, que é um dos sistemas de gerenciamento de bancos de dados que considero mais fantásticos do mundo, além de ser grátis é um banco de dados que possui todas as características que um bom SGBD precisa. Outro fator de muita importância é o fator que o MySQL ter a conexão com o PHP muito facilitada, pouquíssimas vezes tive problemas com o MySQL, assim como tenho com Oracle ou mesmo o SQL Server
PRÉ-REQUISITOS
Para que se programe em qualquer linguagem é necessário ter um ambiente totalmente configurado e preparado para receber os programas criados, para que sejam testados e executados. Para que você consiga realizar a conexão com o banco de dados é necessário ter um ambiente Apache + PHP + MySQL preparado, existem diversos pacotes na internet que proporcionam um ambiente totalmente configurado utilizando apenas um instalador, como é o caso do WAMP, XAMPP, na internet também é possível encontrar diversos tutoriais de como instalar estes pacotes ou mesmo realizar a instalação de cada um dos pacotes, separadamente. Também é necessário ter conhecimentos básicos em PHP e sobre o funcionamento de bancos de dados. Aqui mesmo no Escola Criatividade já tivemos artigos que auxiliam neste aspecto e recomendo que faça a leitura dos mesmos para que tenha o conhecimento necessário para tal.
CLASSE DE CONEXÃO AO BANCO DE DADOS
Mostraremos a classe por completo e mais abaixo iremos fazer toda a análise da classe para que não reste nenhuma dúvida da lógica utilizada. Perceba que esta classe é apenas o mais básico necessário para a conexão ao banco de dados e a mesma pode ser customizada para a utilização mais específica.
Código:
<?php
/*
* Classe de conexão a banco de dados MySQL Orientado a Objetos
* Autor: Jair Rebello
*/
class connectBD {
/*
* Declaração dos atributos da classe de conexão
*/
private $host; // Endereço do servidor do banco de dados
private $bd; // Banco de dados utilizado na conexão
private $usuario; // Usuário do banco de dados que possua acesso ao schema
private $senha; // Senha do usuário
private $sql; // Consulta a ser executada
function conectar(){
/*
* Método que conecta ao banco de dados passando
* os valores necessários para que a conexão ocorra
*/
$conexao = mysql_connect($this->host,$this->usuario,$this->senha) or die($this->mensagem(mysql_error()));
return $conexao;
}
function selecionarDB(){
/*
* Método que seleciona o banco de dados
* com que irá trabalhar
*/
$banco = mysql_select_db($this->bd) or die($this->mensagem(mysql_error()));
if($banco){
return true;
}else{
return false;
}
}
function executar(){
/*
* Método que executa uma query no banco de dados
*/
$query = mysql_query($this->sql) or die ($this->mensagem(mysql_error()));
return $query;
}
function set($propriedade,$valor){
/*
* Método criado para atribuir os valores as variáveis de conexão,
* muito melhor que criar set's para cada variável
*/
$this->$propriedade = $valor;
}
function mensagem($erro){
/*
* Função para exibir os possíveis erros
* Separamos em um método, pois este pode ser estilizado,
* sem alterar outros métodos
*/
echo $erro;
}
}
?>
Depois de toda a declaração da classe e comentários iniciais, temos da linha 13 até a linha 17, a declaração das variáveis que iremos utilizar na classe, são principalmente variáveis de conexão com o banco de dados MySQL, se um destes valores forem passados de maneira inadequada, certamente a conexão não irá ser possível. Perceba que toda a classe é devidamente comentada, isso ajuda também na manutenção e também no entendimento de quem irá dar manutenção posteriormente.
Na linha 19, podemos encontrar a classe de conecta de fato ao banco de dados, partindo das informações contidas nas variáveis de conexão, o PHP tentará um conexão ao banco de dados, caso isto não seja possível é chamado o método die(). A função die() aborta imediatamente a execução da aplicação, utilizar este método nestas situações é perfeitamente correto, já que não como o sistema funcionar sem uma conexão com o banco de dados, em outros casos de erros menos graves uma estrutura try-catch se mostra mais eficiente já que o programa não precisa ser interrompido totalmente.
Na linha 28, temos a função selecionarDB(), esta função fará a seleção do banco de dados com que se deseja trabalhar neste caso. Muitos não entendem muito bem porque é necessário se conectar ao banco de dados e depois ainda temos que selecionar o “banco” que queremos utilizar. Isto acontece porque quando nos conectamos a um SGBD com uma combinação de usuário e senha, possuímos permissão a um ou mais schemas (bancos), e temos que selecionar o qual desejamos trabalhar e realizar nossas consultas. A função retorna true (verdadeiro), caso o retorna seja um objeto de banco de dados válido e false (falso) se algo der errado com a execução. Mais uma vez é utilizado o método die(), pelos mesmos motivos citados acima.
A função executar() é mostrada na linha 42, esta função basicamente realizar consultas ao banco de dados, tendo uma string SQL como parâmetro. Lembrando que o conceito de consulta em banco de dados nem sempre está relacionado a uma consulta (resgate de dados já cadastrados), uma consulta pode também ser uma inserção de dados ou mesmo a atualização de dados cadastrados anteriormente.
A função set() é utilizada para atribuir os valores as variáveis utilizadas na classe. Isso evita que precisemos incluir um set para cada variável já que passamos também por parâmetro na função a propriedade que queremos alterar. Precisamos de métodos para alterar o valor destas variáveis porque determinamos que as mesmas seriam do tipo private.
UTILIZANDO NA PRÁTICA A CLASSE
Para demonstrar o funcionamento da classe proposta neste artigo, criamos um novo arquivo PHP, podendo ser index.php, dentro da mesma pasta da classe criada. A primeira coisa a ser feita é realizar a inclusão do arquivo que contem a nossa classe. Depois criamos uma instância da classe connectBD. Nas cinco linhas seguintes são feitas as atribuições das variáveis necessárias para realizar a conexão ao banco de dados. Nas linhas 11 e 12 são efetuadas os métodos para se conectar ao banco de dados e depois feita a seleção do banco de dados. Ao fim é feita uma pequena impressão para mostrar que realmente a conexão com o banco de dados foi bem sucedida.
Código:
<?php
include('connectBD.php');
$connect = new connectBD();
$connect->set('bd','information_schema');
$connect->set('host','localhost');
$connect->set('usuario','root');
$connect->set('senha','');
$connect->set('sql','SELECT * FROM SCHEMATA S');
$connect->conectar();
$connect->selecionarDB();
echo 'Foram encontrados: ' . mysql_num_rows($connect->executar()) . ' Schemas em seu banco de dados';
?>
CONCLUSÃO
Neste artigo aprendemos a criar uma classe de conexão e execução de consultas no banco de dados totalmente orientado a objetos, para isto utilizamos o MySQL como exemplo mas o exemplo pode ser estendido aos demais bancos dados que o PHP possui suporte. Também criamos um programa PHP para testar o funcionamento da classe e se você tiver realizado todas as codificações corretamente terá sucesso e o mesmo exibirá a quantidade de bancos de dados existentes na sua instalação do MySQL. Nos próximos artigos iremos abordar muito mais aspectos relativos a utilização do PHP orientado a objetos. Também mostraremos alguns frameworks que utilizam orientação a objetos e que facilitam e muito o desenvolvimento ágil, fique no aguardo.
Abraços!
© escolacriatividade.com