OO com PHP – Herança
12/20/2012 1 Comentário
Introdução
O paradigma Orientado a Objetos (OO) traz diversas vantagens para os desenvolvedores e o seus uso comercial esta amplamente difundido. A grande maioria das linguagens hoje em dia permitem que o desenvolvedor crie suas classes e mantenha seus projetos mais organizados e com uma taxa mais alta de reaproveitamento de código (depende do desenvolvedor!).
Muitas linguagens como o PHP e Javascript não costumam ser utilizadas orientadas a objetos. Mas isso não significa que elas não sejam OO.
Objetivo
O objetivo deste tutorial é ensinar como criar uma classe e herdar esta utilizando o PHP.
Vamos criar uma classe pai que guarde a referência a uma conexão com o banco chamada dao. Todas as outras classes irão herdar desta e sobreescrever o construtor da classe pai.
Criando superclasse
Primeiro devemos criar o arquivo dao.php:
class dao { protected $lig; public function __construct($lig = null) { if($lig == null) { //método utilizado para abrir a conexao com o banco $this->lig = abrir_conexao(); } else { $this->lig = $lig; } } public function setLig($lig) { $this->lig = $lig; } public function getLig() { return $this->lig; } }
A classe acima possui uma variável chamada $lig que armazena a conexão com o banco. Ela é definida como protected que garante que seja visível apenas para a própria classe e para aquelas que herdarem dela. Podemos permitir o acesso a esta variável com os famosos métodos get/set que são public e podem ser acessados de qualquer outra classe.
O método __contruct sera executado sempre que executarmos o comando new que irá instanciar um objeto.
Herdando a superclasse
Agora toda as nossas classes dao que necessitem uma conexão com o banco de dados, podem herdar a classe acima e irão possuir o atributo de ligação. Vamos criar o arquivo usuario_dao:
class usuario_dao extends dao { public function __construct($lig = null) { parent::__construct($lig); } public function salvar_usuario($usuario) { //string contendo o comando para salvar o user $query = ''; $ok = mysql_query($query, $this->getLig()); return $ok == 1; }
Neste exemplo, estamos criando uma nova classe e herdando da classe dao através da palavra chave extends (igualzinho ao Java).
Criamos um construtor novo e dentro dele chamamos o construtor da super classe, para isso, utilizamos o parent:: que indica que queremos executar o construtor da classe pai.
Para todas as novas classes, basta herdar esta classe dao e implementar o construtor.
Pingback: OO com PHP – Herança | CoffeeCode