DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Quick Tips: POO no PHP 5 - Parte 2

Olá pessoal estamos aqui novamente para poder falar um pouco mais sobre orientação a objetos no PHP

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?


Olá pessoal estamos aqui novamente para poder falar um pouco mais sobre orientação a objetos no PHP.São muitas as novidades no que diz respeito a OO no PHP 5 porém aqui abordarei as principais de forma bastante sucinta.

Escopo de Visibilidade

Foram adicionados alguns modificadores de acessas comuns a OO como private, protected e public e isso para métodos e propriedades. A partir da versão 5 ficou mais simples implementar encapsulamento de métodos e propriedades através destes modificadores:

class MinhaClasse{

        private $codigo = null;

         public setCodigo($id){

            $this->codigo;

        }

}

Obs.: Se nenhum escopo for informado o padrão adotado será o public e por questões de compatibilidade a sintaxe var $nome ainda é valida, porém não recomendada.

Construtor Unificado

Agora há no PHP uma método exclusivo para construtor da classe, trata-se do método __construct() que é usado em vez de uma função com o mesmo nome da classe como era no PHP 4. Por motivos de compatibilidade ainda há suporte a esta operação porem recomenda-se o uso desta ultima.

class Carro{

        function __construct(){

            echo “Carro Construído”;    

          }    

}

Suporte a Destrutores

Podemos agora ter um método chamado automaticamente quando o objeto é destruído. Este método é o __destruct().

class Carro{

        function __destruct(){

            echo “Carro Destruído”;

         }

}

Interfaces

Foram introduzidas no PHP 5 em lugar da herança múltipla, elas dão as classes a habilidade de atender a mais de um requisito no modelo OO. Cada classe pode herdar somente de uma classe, porém podem implementar quantas interfaces quiser e o melhor há também o suporte a herança entre as interfaces.  Entenda a interface como sendo uma espécie de contrato, de regra que toda a classe que a implementar deve seguir, com isso podemos programar em cima de uma interface e não de uma implementação concreta, aumentando assim a abstração e diminuindo o acoplamento.

interface Operacao{

        function executar();

}

class Somar implements Operação{

        public $n1;

        public $n2;

        function executar(){

            return $this->n1+$this->n2;

        }

}

class Subtrair implements Operação{

        public $n1;

        public $n2;

        function executar(){

            return $this->n1-$this->n2;

        }

}

Operador instanceof

No PHP 4 existia uma função chamada is_a() que verificava se o objeto era uma ou pertencia a uma determinada hierarquia de classe. Agora no PHP 5 utilizamos a função instanceof para realizar esta verificação

if ($Obj instanceof Pessoa) {

        echo “O Objeto verificado e uma Pessoa”;

}

Métodos Finais

A palavra reservada final pode ser adicionada a alguns métodos e com isso impedir que esses métodos sejam sobrescritos em uma classe descendente.

class Cachorro{

        final function Latir(){

            echo “Cachorro Latindo”;

        }

}

Este método não poderá ser sobrescrito numa classe descendente.

Classes Finais

Da mesma maneira que um método uma classe pode ser declarada como final impedindo assim que seja herdada dentro do modelo OO.

final class Carro{ 

}

class CarroNacional extends Carro{

}

O código acima geraria um erro, pois a classe Carro não pode ser herdada.

Bem pessoal, eu fico por aqui. Na próximo tips veremos mais sobre POO no PHP.

Abs!!


Rodrigo Carreiro Mourão
Gestor de TI com especialização em gerência de projetos (PMI) e Governança de TI (ITIL e COBIT) pelo instituto Infnet. Embarcadero MVP e Instrutor certificado pela Borland. Graduando-se em Gestão de TI focada em negócios. Grande entusiasta do desenvolvimento orientado a objetos, padrões de projetos,...
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03