Classes e Conexões com PHP (Parte 2): Instanciando e Usando Objetos

Na primeira aula, vimos a teoria: a classe SistemaAutenticacao é a planta de um sistema de login. Agora, vamos ver essa planta ser usada para construir o nosso sistema. O código que você forneceu mostra a mágica acontecendo na prática.


1. O que é Instanciar uma Classe?

A linha mais importante no começo do código é a seguinte:

$sistema = new SistemaAutenticacao();

Essa linha é o que chamamos de instanciação. Pense assim:

  • A classe SistemaAutenticacao é a planta de um carro.
  • A variável $sistema é o carro de verdade que você acabou de construir a partir daquela planta.

A palavra-chave new é o comando que o PHP usa para criar um objeto (a instância) a partir de uma classe. A partir de agora, a variável $sistema é um objeto que tem todos os métodos e propriedades definidos na sua classe.

O mesmo acontece aqui:

$usuario1 = new Usuario();

Você está criando um objeto do tipo Usuario. A variável $usuario1 não é mais um texto ou um número; ela é uma representação complexa de um usuário, com seus próprios dados e ações.


2. Colocando os Métodos para Trabalhar

Com os objetos criados, o resto do código é sobre como chamamos os métodos para interagir com eles. O operador -> é a forma de “acessar” um método ou uma propriedade dentro de um objeto.

Adicionando e Acessando Dados

Veja como o objeto $usuario1 é “preenchido” com informações e depois adicionado ao sistema:

// Define as propriedades do objeto $usuario1 usando os métodos "set"
$usuario1->setId(1);
$usuario1->setLogin('usuario1');
$usuario1->setSenha('senha1');

// Usa um método do objeto $sistema para adicionar o objeto $usuario1
$sistema->adicionarUsuario($usuario1);

O método adicionarUsuario() recebe o objeto $usuario1 como um todo, o que torna o código muito mais organizado do que se tivéssemos que passar login, senha e ID separadamente.

Realizando Ações

A autenticação é um exemplo perfeito de como os métodos funcionam.

echo $sistema->autenticar('usuario1', 'senha1') ? "..." : "...";

O PHP executa o método autenticar() do objeto $sistema. Se o método retornar true (sucesso), ele executa a primeira parte do echo. Se retornar false (falha), ele executa a segunda parte.

Gerenciando o Objeto

O restante do código demonstra a flexibilidade de ter esses métodos encapsulados na classe:

  • $sistema->listarUsuarios(): Chama o método que “busca” todos os usuários e retorna um array. Isso permite que o foreach possa exibir cada um deles.
  • $sistema->removerUsuario(1): Chama o método que encontra e remove o usuário com o ID 1.
  • $sistema->redefinirSenha(2, 'novaSenhaSegura'): Chama o método que altera o estado interno de um dos objetos de usuário.

Resumo da Prática

Essa segunda parte da aula nos mostra como as classes saem da teoria e se tornam ferramentas reais e poderosas:

  1. Criação de Objetos: A palavra-chave new é usada para criar instâncias de uma classe.
  2. Interação entre Objetos: Objetos podem ser passados como argumentos para os métodos de outros objetos ($sistema->adicionarUsuario($usuario1)).
  3. Execução de Métodos: O operador -> é usado para “chamar” os métodos que executam as ações definidas na classe.

Com essa estrutura, você cria um código modular e reutilizável. A lógica de autenticação fica toda dentro da classe SistemaAutenticacao, e você pode simplesmente instanciar um novo objeto dela sempre que precisar de um sistema de login, sem precisar reescrever o código.

Agora que você viu a classe em ação, como você acha que poderia usar essa mesma estrutura de classes para gerenciar, por exemplo, um sistema de estoque com produtos?