Introdução a Programação Orientada à Objeto (POO) no PHP - Parte 1


Autor/fonte: Balala
E-mail/Url: http://forum.wmonline.com.br/index.php?showtopic=81162
Tags: [ poo ]



Digg del.icio.us

Por que programar OO (Orientado à Objeto)?

Nem eu, nem qualquer outra pessoa no mundo pode chegar pra você e falar:

- Programe OO que é muito melhor.

Ou vice-versa. Não teve, não tem e provavelmente não terá nenhuma vantagem em relação a outra forma de programação. Tudo é uma questão de gosto e prática. Claro que, algumas vantagens uma tem em relação a outra, muitas pessoas comentam que programando OO você poderá publicar e buscar classes já prontas para fazer alguma função. Mas o mesmo aconteceria com a Programação "Normal". Comparar OO ao Método normal, é semelhante a comparar as funções echo ou print.

Portanto, não vou estar aconselhando a usar ou não usar OO, é simplesmente o seu gosto. Mas, como li em uma frase no livro PHP 4 - A bíblia.

"Não fique constrangido, caso um Programador OO diga que o script dele de 10 linhas é melhor que o seu de 5 linhas"

Realmente, programando em OO você terá um código fonte maior. Mas por outro lado, melhor compreendido (para outros programadores de OO) do que um código ao modo "normal".

O suporte a OO no PHP, como está no site oficial (php.net) é para usuários com experiências em outras linguaguens que são OO, como C#, e estão acostumados com ela. Por isso da introdução OO no PHP.

Vamos dar os parabéns para quem continuar, pois, está ciente que é uma maneira um pouco mais demorada, mas talvez possa ser mais organizada de programar. Não dúvido que muitos programadores ao lerem o texto acima, tenham para por ai. Nada de incomum, muitos irão ver OO e começar a programar nela, os demais, não veram vantagem nenhuma e deixarão de lado.

Introdução

Enfim, começaremos. Para qualquer programação OO, você criará tudo baseado em Classes, e as variáveis que você costumava usar, passarão a ser Objetos. Vamos à um exemplo:

<?php
class MinhaClasse { // Declaração da Classe
    var $txt1; // Declaração das Variáveis
    var $txt2;
}

$MeuObjeto = new MinhaClasse();
?>

Um exemplo sem utilização, mas que poderá nos ajudar a entender como criar uma classe. Na linha 2 (class MinhaClasse {) é onde declaramos nossa Classe, cada vez que quiser criar um objeto a partir dela, criaremos chamando pelo nome definido "MinhaClasse". Podemos criar quantas classes diferentes quiser, mas não pode ser em bloco:

<?php
class MinhaClasse {
?>
<?php
    var $txt1;
    var $txt2;
}
?>

O exemplo acima não irá funcionar. Voltando ao exemplo correto, as linhas 3 e 4 é onde declaramos nossas variáveis. Exato, para se trabalhar com classes, precisamos declarar as variáveis antes de usá-las. Mas não precisamos definir seu tipo, a não ser que queiramos uma Matriz:

<?php
class MinhaClasse {
    var $txt1 = array();
    var $txt2;
}

$MeuObjeto = new MinhaClasse();
?>

Acho que até aqui não teremos maiores problemas, vamos prosseguir.

Retornando valores das classes

Sei que a minha classe tem as váriaveis $txt1 e $txt2, mas como gravo e imprimo o que tem nelas? De uma maneira simples, mas não aconselhada, seria utilizar o operador "->". Vamos supor que o script acima faça parte do nosso código:

echo $MeuObjeto -> txt1;

Não, não esqueci do sinal $ antes de váriavel $txt1. Ao utilizar um objeto referenciamos as váriaveis dele somente com 1 sinal de $. Essa mesma forma poderia ser utilizada para definir valores à variavel:

$MeuObjeto -> txt1 = "Olá Brasil!";

Mas então, porque comentei antes que não era aconselhado utilizar dessa forma? Pelo simples fato de estarmos trabalhando com classes não somente para ter uma espécie de Matriz Multidimensional, mas sim para organizar nosso código. E uma maneira organizada de se fazer isso seria trabalhar com funções dentro das classes:

<?php
class MinhaClasse {
    var $txt1;
    var $txt2;

    function Retornar1() {
        echo $this -> txt1;
    }
}

$MeuObjeto = new MinhaClasse();
?>

Agora você se pergunta "O que diabos faz aquele $this ali?". $this é somente uma referência à classe em que se encontra a função. Poderiamos sem problemas colocar no nome da classe para retornar o valor da váriavel, mas iria atrapalhar caso estivessemos trabalhando com classes hierarquicas, ter uma classe pai e filho. Mas isso não é hora de comentar ainda, mais pra frente veremos.

Voltando ao nosso código, veja que, a função está dentro de nossa classe, então para executar ela seria dessa forma:

$MeuObjeto -> Retornar1();

Certo, mas já que não utilizo a forma "antiga" para ler a váriavel, como faço para armazenar um valor à ela?

O segredo está nas funções:

<?php
class MinhaClasse {
    var $txt1;
    var $txt2;

    function Retornar1() {
        echo $this -> txt1;
    }

    function Gravar1($valor) {
        $this -> txt1 = $valor;
    }
}

$MeuObjeto = new MinhaClasse();
?>

Então ao executar a função $MeuObjeto -> Gravar1(), temos que passar um valor que será o novo valor da váriavel $txt1. Quaisquer outros tipos de funções podem ser declaradas dentro da classe, mas tenha idéia que trabalhar com OO é justamente para ter no final, um código limpo e de fácil entendimento. Talvez alguém está se perguntando, porque venho colocando váriaveis com letras maiusculas. Isso é somente seu estilo de programação, vinha fazendo com _ a um bom tempo, mas mudei o jeito por vontade própria ao iniciar em OO, acho que dessa forma fica mais fácil identificar. Mas como disse, é somente o gosto, poderia sem problema algum criar a classe minha_classe e $meu_objeto. Só cuidado com a forma MinhaClasse, pois PHP faz distinção entre váriaveis maiusculas e minusculas.

Acho que podemos encerrar nossa introdução por aqui. Na próxima parte vamos à alguns exemplos mais práticos.




Enviado por xKuRt em 20/05/2007 às 19:40


Itens relacionados

Tutorial de POO no PHP: Abstração
Classes e Objetos no PHP 5 - Visibilidade, Construtores e Destrutores
Simulando destrutores no PHP
Descobrindo os métodos de uma classe por Reflexão
Tutorial de POO no PHP: Programação Estruturada x Programação Orientada a Objetos
Tutorial de POO no PHP: Membros da classe
Introdução a Programação Orientada à Objeto (POO) no PHP - Parte 2
PHP 5 Orientado a Objetos: Visibilidade, herança e extensões de classes
PHP 5 com OOP - Parte 2 - Construtores e destrutores
PHP Orientado a Objetos: Para quem está começando

Listar todos itens relacionados

Avaliação

Esta publicação ainda não foi avaliada!


Avaliar:


A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.



Comentários

Este artigo ainda não foi comentado ou o(s) comentário(s) que foi(ram) enviado(s) a ele ainda não foi(ram) publicado(s).


Envio de comentário:




  

Sexta, 31 de Outubro de 2014




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
aça um Site


Capa do livro
Google Top 10 - Como Colocar seu Site ou Blog na Primeira Página do Google


Capa do livro
Manual de Marketing em Mídias Sociais





Hostnet

IMD