Clique aqui e veja todas as aulas
1. Por que Usar uma Classe para Gerenciar a Conexão?
Ao criar uma classe para gerenciar a conexão com o banco de dados, você obtém vários benefícios:
- Reutilização de Código: A classe pode ser reutilizada em diferentes partes do projeto, evitando a repetição de código.
- Facilidade de Manutenção: Se houver a necessidade de alterar os detalhes de conexão, você só precisa modificar a classe, e todas as áreas do projeto serão atualizadas automaticamente.
- Segurança e Abstração: A classe esconde detalhes técnicos da conexão, fornecendo um nível de abstração.
2. Estrutura da Classe Database
Vamos lembrar da classe chamada Database, que foi criada na aula anterior e que será responsável por estabelecer a conexão com o banco de dados e fornecer essa conexão para outras partes do sistema.
Verifique no diretório classes do seu projeto, se existe um arquivo chamado Database.php. Caso não exista, será necessário criar ele novamente.
<?php
class Database {
private $host = "localhost";
private $db_name = "gerenciador_tarefas";
private $username = "root";
private $password = "";
public $conn;
// Método para obter a conexão com o banco de dados
public function getConnection() {
$this->conn = null;
// Tentativa de conectar ao banco de dados
try {
$this->conn = new mysqli($this->host, $this->username, $this->password, $this->db_name);
if ($this->conn->connect_error) {
die("Erro de conexão: " . $this->conn->connect_error);
}
} catch (Exception $e) {
echo "Erro de conexão: " . $e->getMessage();
}
return $this->conn;
}
}3. Explicação do Código
- Propriedades da Classe:
$host: O endereço do servidor de banco de dados.$db_name: O nome do banco de dados ao qual queremos conectar.$username: O nome de usuário do banco de dados.$password: A senha do banco de dados.$conn: A variável que armazenará a conexão ativa com o banco de dados.
- Método
getConnection():- Este método tenta estabelecer a conexão com o banco de dados usando o
mysqli. - Em caso de sucesso, a conexão é armazenada em
$conne retornada. - Em caso de erro, uma mensagem de erro é exibida.
- Este método tenta estabelecer a conexão com o banco de dados usando o
4. Usando a Classe Database
Agora que a classe Database está criada, vamos utilizá-la em outras partes do nosso projeto.
Passo 2: Criando o Arquivo index.php para Testar a Conexão
Crie um arquivo index.php para testar se a conexão está funcionando corretamente.
<?php
require_once 'classes/Database.php';
$database = new Database();
$conn = $database->getConnection();
if ($conn) {
echo "Conexão estabelecida com sucesso!";
} else {
echo "Falha ao conectar ao banco de dados.";
}
?>Passo 3: Executando o Teste
- Acesse o arquivo
index.phpno navegador. - Se a conexão for bem-sucedida, a mensagem "Conexão estabelecida com sucesso!" será exibida.
5. Melhorando a Classe Database
Segurança: É uma boa prática não expor diretamente as credenciais de conexão no código. Uma abordagem comum é armazenar esses dados em arquivos de configuração ou variáveis de ambiente.
Exemplo de Melhorias:
class Database {
private $host;
private $db_name;
private $username;
private $password;
public $conn;
public function __construct() {
$this->host = getenv('DB_HOST');
$this->db_name = getenv('DB_NAME');
$this->username = getenv('DB_USERNAME');
$this->password = getenv('DB_PASSWORD');
}
public function getConnection() {
$this->conn = null;
try {
$this->conn = new mysqli($this->host, $this->username, $this->password, $this->db_name);
if ($this->conn->connect_error) {
die("Erro de conexão: " . $this->conn->connect_error);
}
} catch (Exception $e) {
echo "Erro de conexão: " . $e->getMessage();
}
return $this->conn;
}
}Usando Variáveis de Ambiente:
- As informações sensíveis, como
DB_HOST,DB_NAME,DB_USERNAMEeDB_PASSWORD, podem ser configuradas em um arquivo.envou diretamente no servidor.
6. Próximos Passos
Agora que temos uma classe robusta para gerenciar a conexão com o banco de dados, vamos começar a interagir com o banco de dados diretamente, inserindo e manipulando dados. Na próxima aula, aprenderemos como realizar operações CRUD (Create, Read, Update, Delete) no banco de dados.
