Programação orientada a objectos em PHP

PHP oferece funcionalidades próprias da POO. Neste capítulo vamos ver os aspectos mais básicos desta metodologia.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 26/7/04
Valorize este artigo:
A programação orientada a objectos é uma metodologia de programação avançada e bastante estendida, na que os sistemas se modelam criando classes, que são um conjunto de dados e funcionalidades. As classes são definições, a partir das que se criam objectos. Os objectos são exemplares de uma classe determinada e como tal, dispõem dos dados e funcionalidades definidos na classe.

A programação orientada a objectos permite conceber os programas de uma maneira bastante intuitiva e próxima a realidade. A tendência é que um maior número de linguagens de programação adoptem a programação orientada a objectos como paradigma para modelar os sistemas. Prova disso é a nova versão de PHP (5), que possui a programação de objectos como metodologia de desenvolvimento. Também a Microsoft deu um giro em direção a programação orientada a objectos pois .NET dispõem de várias linguagens para programar e todas orientadas a objectos.

De este modo, a programação orientada a objectos é uma área de grande interesse, pois é muito utilizada e cada vez torna-se mais essencial para poder desenvolver em quase qualquer linguagem moderna. Neste artigo vamos ver alguma notações sobre a programação orientada a objectos em PHP. Ainda que sendo uma área bastante amplia e novidade para muitos e num principio difícil de assimilar, vamos tentar explicar a sintaxe básica de PHP para utilizar objectos, sem entrar em muita teoria de programação orientada a objectos em geral.

As classes: class

Uma classe é um conjunto de variáveis, chamados atributos, e funções, chamadas métodos, que trabalham sobre essas variáveis. As classes são uma definição: uma especificação de propriedades e funcionalidades de elementos que vão participar nos nossos programas.

Por exemplo, a classe "Caixa" teria como atributos características como as dimensões, cor, conteúdo e coisas semelhantes. As funções ou métodos que poderíamos incorporar a classe "Caixa" são as funcionalidades que queremos que realize a caixa, por exemplo introduz(), mostra_conteudo(), comprova_se_cabe(), vaziar()...

As classes em PHP definem-se da seguinte maneira:

<?
class Caixa{
   var $altura;
   var $grossura;
   var $largura;
   var $conteudo;
   var $cor;

function introduz($coisa){
   $this->conteudo = $coisa;
}

function mostra_conteudo(){
   echo $this->conteudo;
}
}
?>


Neste exemplo criou-se uma classe Caixa, indicando como atributos a altura, a grossura, a largura e também a cor e o conteúdo. Para começar criaram-se um par de métodos, um para introduzir um elemento na caixa e outro para mostrar o conteúdo.

Se repararmos, os atributos definem-se declarando umas variáveis ao principio da classe. Os métodos definem-se declarando funções dentro de uma classe. A variável $this, utilizada dentro dos métodos será explicada um pouca mais em baixo.

Utilizar a classe

As classes são definições. Se queremos utilizar uma classe temos de criar um exemplar dessa classe, o que normalmente se chama instanciar um objectos de uma classe.

$minhacaixa = new Caixa;

Com isto criámos ou melhor dito, instanciámos, um objecto da classe Caixa chamado $minhacaixa

$minhacaixa->introduz("algo");
$minhacaixaa->mostra_conteudo();


Com estas duas sentenças estamos a introduzir "algo" na caixa e depois estamos a mostrar esse conteúdo no texto da página. Repara que os métodos de um objecto chamam-se utilizando o código "->".

nome_do_objecto->nome_do_metodo()

Para aceder aos atributos de uma classe também se acede com o código "->". Desta forma:

nome_do_objeto->nome_do_atributo

A variável $this

Dentro de um método, a variável $this faz referência ao objecto sobre o que invocamos o método. Na invocação $minhacaixa->introduz("algo") está-se a chamar ao método introduz sobre o objecto $minhacaixa. Quando se está a executar esse método, passa-se o valor que recebe por parâmetro ao atributo conteúdo. Neste caso $this->conteúdo faz referência ao atributo contido no objecto $minhacaixa, que é sobre o que se invocava o método.





Comentários do artigo
Foi enviado 1 comentário ao artigo
1 comentário não revisado
0 comentários revisados

Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato