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]



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