- Como Criar Um Site, Blog – WebMaster.pt - http://www.webmaster.pt -

Programação Orientada A Objetos No PHP 5 – Parte 1

Tweet [3]

O PHP é uma das linguagens de programação mais utilizadas do mundo. Em parte pelos custos de manutenção muito baixos e também devido à curva de aprendizado.

Graças a acessibilidade da linguagem com tipagem fraca e liberdade de estrutura, muito código mal formado é produzido utilizando PHP. E isso gera ainda a má fama de ser uma linguagem de segunda categoria.

Esta idéia esta mudando ao poucos desde o lançamento do PHP 5 que oferece um modelo de desenvolvimento mais estruturado. Com isso o código pode ser composto de forma a ser reutilizado ao mesmo tempo em que se torna mais organizado e de fácil análise. Isso também é conhecido como programar orientado a objetos.

Programação Orientada a Objetos

Programação Orientada a Objetos

Também conhecida pelas iniciais POO, ou se você prefere inglês OOP, a Programação Orientada a Objetos torna-se progressivamente um modelo seguido pelos desenvolvedores de diversas linguagens. Algumas na verdade exigem que seja feito assim.

Na POO o código é divido em pequenos blocos de procedimentos bastante específicos. Eles são chamados de objetos. O encadeamento das ações disparadas pelos objetos é que faz o programa funcionar.

Certo, e daí? E daí que de uma maneira geral isso que é a POO. Tornar o seu código mais organizado e modular.

Mas cuide para não confundir isso com criar funções. Quando você programa orientado a objetos existe todo um relacionamento e diretrizes seguidas. Não é simplesmente colocar uma função rodando depois da outra.

O Código

Ao invés de trabalhar com analogias e desfilar novos termos, penso que é melhor já começarmos com um exemplo.



class Web{
  public $linguagem;
  public function pagina(){
    echo 'Página escrita utilizando '.$this -> linguagem;
  }
}

$var = new Web();
$var->linguagem = 'PHP';
$var -> pagina();

A execução destas linhas mostra na tela a frase: “Página escrita utilizando PHP”.

Classe

A palavra reservada class informa que estamos criando uma classe chamada “Web”. O papel da classe é reunir as características e comportamentos comuns dos objetos.

Um exemplo muito utilizado para ilustrar o papel de uma classe vem da biologia. A classe dos Mamíferos engloba animais tão diferentes quanto o cachorro e o morcego. Mas todos possuem características comuns como produção de leite, coluna vertebral.

Na programação utilizamos o mesmo conceito. A classe pode ter diversas funções que pesquisam em múltiplas tabelas, mas em comum dividem o mesmo propósito e pode acontecer também de trabalharem com as mesmas variáveis.

Dando Nome Às Partes

Ao trabalhar com classes e programação orientada a objetos, é comum chamar variável de atributo. Se o valor do atributo muda, o resultado final também é alterado. Em outras palavras, as características do objeto instanciado mudam. Sendo assim, ao somar todos os atributos temos o estado do objeto.

As funções, por sua vez, são chamadas de métodos. Responsáveis pelo comportamento do objeto, o que ele faz.

Ao instanciar uma classe, isto é, utilizá-la como foi feito nas últimas três linhas do código acima, estamos criando um objeto. Este objeto tem um estado, referente ao que é atribuído à variável e um comportamento que são as chamadas de funções.

Apesar dos nomes complicarem um pouco, não há nada de novo. Temos variáveis, funções e chamadas. A nomenclatura é apenas para fins de padronização e apesar de importante, não saber perfeitamente não influencia no funcionamento do código.

Visibilidade

O PHP não exige que você declare a variável antes de utilizá-la. Você pode atribuir um valor para ela no meio do código sem problemas. Também não precisa definir o tipo de dados que a variável deve receber. Isso é chamado de tipagem fraca.

Depois da abertura da classe declaramos a variável com a palavra public na frente. Isso significa que o acesso à variável é público e podemos modificar o valor atribuído a ela de qualquer lugar do código. Tanto que, ao observar a penúltima linha do código de exemplo, você verá que foi atribuído um valor à variável “linguagem” e esta linha não faz parte da classe.

Observe que estou utilizando a variável como exemplo, mas isso também se aplica às funções.

Além do public, outros modificadores de acesso são o protected e o private. Uma propriedade ou método protected esta disponível somente para a classe onde foi criado e para as subclasses desta. Se for private esta disponível somente para a classe e não para as subclasses. Em ambos os casos não podem ser acessados de fora da classe, como acontece com o public.

Altere no código da página esta linha:



public $linguagem;

Por esta:



private $linguagem;

E veja que retorna um erro de acesso. Já que agora o atributo somente pode ser alterado dentro da classe.

Utilizando a classe

A classe em si não faz nada. Ela precisa ser instanciada e alimentada. Foi criado o objeto com a palavra new e armazenado na variável “$var”. Agora, utilizando a variável, temos acesso aos atributos e métodos da classe.



$var = new Web();
$var->linguagem = 'PHP';
$var -> pagina();

Para fazer referência ao método e ao atributo é que utilizamos o traço mais o sinal de maior do que “->”. Estamos dizemos algo como: dentro da classe Web, acesse o atributo linguagem e preencha com a palavra ‘PHP’.

Quando é chamado o método que mostra a frase na tela, por ser uma função, é preciso adicionar os parênteses.

Execute o código e aparece na tela “Página escrita utilizando PHP”.

Parece muito trabalho para mostrar uma simples frase? Realmente é. Os ganhos são mais visíveis em códigos extensos e isso é apenas um simples exemplo.

this

Decidi explicar o this somente agora, pois fica mais fácil de compreender tendo utilizado a classe. O this é uma referência ao objeto em execução. Ao utilizar o this dentro da função pagina() significa que deve mostrar na tela o conteúdo do atributo mensagem que esta neste(this) objeto.

Conclusão

Com o que vimos neste primeiro artigo você já consegue criar pequenas soluções para os seus programas. Na seqüência desta série sobre programação orientada a objetos você verá sobre herança, interface, implementação, construtores e desconstrutores.

Próximo artigo > Programação Orientada A Objetos No PHP 5 – Parte 2 [4]

Tweet [3]
Be Sociable, Share!
  • [5]
  • [6]
  • [7]
  • [8]
  • [9]