OO com PHP – Herança

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.

One Response to OO com PHP – Herança

  1. Pingback: OO com PHP – Herança | CoffeeCode

Deixe um comentário