Eu aqui novamente para falar de um assunto que para muitos é a solução de todos os problemas e para outros é simplesmente o problema. Vou falar sobre programação orientada a objetos usando PHP.
Mas afinal, o que é Orientação a Objetos?
Ela é uma maneira de programar que modela os processos de uma maneira mais próxima da realidade, tratando cada componente de uma aplicação como um objeto, onde esse objeto possui suas características e funcionalidades.
Na versão 4 do PHP, já era possível programar dessa maneira, mas na versão 5 isso se tornou mais fácil e eficaz, pois o tratamento de objetos foi reescrito, permitindo assim mais recursos, performance e vantagens em seu uso.
Classes e objetos
Classe é uma estrutura fundamental para criação do objeto, ela possui um conjunto de variáveis e métodos de maneira organizada, que serão utilizados como um novo tipo e instanciará um objeto. O objetivo da classe é criar um objeto que é uma representação desta classe em uma variável.
Exemplo de Classe:
<?
// Classe Pessoa
class pessoa{
public $nome;
public $humor;
function setNome($pNome){
$this->nome = $pNome;
}
function getNome(){
return $this->nome = $pNome;
}
function getNome(){
return $this->nome;
}
function setHumor($pHumor){
$this->humor = $pHumor;
}
function getHumor(){
return $this->humor;
}
function falar(){
echo $this->getNome() . ‘ está ‘ . $this->getHumor();
}
}
?>
Aí criamos uma classe que instanciará um objeto, no nosso caso, uma pessoa. Ela tem duas propriedades ($nome e $humor) e três métodos (setNome($nome), setHumor($humor), getNome(), getHumor() e falar()). Agora, criando um objeto a partir dessa classe, vamos ver o que podemos fazer com ela:
$pessoa = new pessoa; // Instanciamos o objeto "pessoa"
$pessoa->setNome( "Tiago" ); // Setamos $pessoa->nome;
$pessoa->setHumor( "Feliz" ); // Setamos $pessoa->humor;
$pessoa->falar(); // Chamamos o método $pessoa->falar();
Como você deve ter visto, instanciamos um objeto utilizando o operador new. Para utilizarmos as propriedades e métodos da classe, devemos utilizar o operador ->, como vimos acima.
A variável $this
Quando definimos uma classe podemos usar a variável $this, que é o próprio objeto. Quanto uma classe é instanciada em um objeto e utilizamos a variável $this, essa variável se refere ao objeto que estamos utilizando.