Aprenda facilmente OOP com PHP 5 (Object Oriented Programming) ou POO (Programação Orientada à Objeto) – Parte 1

Vinha por anos olhando OOP (Object Oriented Programming) ou se preferir sua tradução, POO (Programação Orientada à Objeto) com PHP 5 com medo de encarar seu aprendizado  por estar confortável com a forma procedural, mas ao mesmo tempo que sentia este medo, a  vontade de aprender coisas novas sempre foi maior.

Convido a todos que desejarem aprender de forma simples e fácil sobre o básico de PHP 5 Orientado à Objeto, acompanhando este tutorial que postarei em duas partes.

O mais difícil de aprender e ensinar em PHP 5 OO… é o básico. Mas uma vez que você tiver esse conhecimento básico, o resto virá muito facilmente.
De forma alguma se sinta desanimado! Como o próprio título deste tutorial diz, você acabou de encontrar o tutorial mais fácil para compreender o básico de OOP com PHP 5

Tá bom, chega de bla, bla, bla e vamos ao que interessa.
Programação Orientada a Objetos (OOP) é um tipo de programação adicionada ao  PHP com maior abrangência a partir do PHP 5, o que tornou a construção de aplicações web complexas, modulares e reutilizáveis muito mais fácil. Com o lançamento do PHP 5, programadores PHP tiveram um poder de codificação de gente grande (big boys). Da mesma forma que Java e C#, PHP finalmente adquiriu uma infra-estrutura OOP completa.

Vou tentar guia-lo (passo-a-passo) através do processo de construção da estrutura usando PHP dentro das capacidades de OOP.

Ao mesmo tempo, você vai aprender:

– A diferença entre a construção de uma aplicação PHP a moda antiga (‘procedural’), em relação a maneira OOP.
– Quais são os princípios básicos de OOP e como usá-los em PHP.
– Quando você deverá usar OOP em seus scripts PHP.

As pessoas se perdem, ficam confusas na programação por causa da falta de compreensão dos princípios básicos. Com isto em mente, vamos lentamente descobrir estes princípios básicos de OOP ao criar nossos próprios objetos PHP. Com esse conhecimento, você será capaz de explorar OOP mais profundamente.

Para acompanhar este tutorial, você deve estar um pouco familiarizado com alguns conceitos básicos de PHP:
Funções, variáveis, condicionais e loops não podem lhe soar como algo de outro mundo rs*.

Para facilitar ainda mais as coisas, este tutorial está dividido em 23 etapas as quais veremos 11 etapas nessa primeira parte.

Etapa 1

PHP Orientado à Objetos – Começando

Primeira coisa que iremos fazer é criar dois arquivos PHP

index.php
class_lib.php

Falar em OOP é falar sobre a criação de código modular, nosso código PHP orientado à objeto estará incluído em todos arquivos PHP usando ‘include’.

Neste caso, todo o nosso código PHP OO vai estar no arquivo PHP:

class_lib.php

OOP gira em torno de uma construção que chamamos de ‘classe‘. Classes são modelos que são usados ​​para definir os objetos.

Etapa 2

Criar uma classe PHP

Em vez de ter um monte de funções, variáveis ​​à toa, para projetar seus scripts PHP ou bibliotecas de código, a maneira OOP você precisa definir/criar suas próprias classes.
Você define sua própria classe, começando com a palavra-chave ‘classe’ seguido do nome que você quiser dar a sua classe.

<?php

class pessoa {

} 

?>

Etapa 3

Adicionar dados para sua classe

Uma das grandes diferenças entre as funções e classes é que uma classe contém ambos os dados, variáveis​ e funções que formam um pacote chamado: ‘objeto’.
Quando você cria uma variável dentro de uma classe, ela é chamada de ‘propriedade‘.

<?php

class pessoa {

    var $name; 

}

?>

Nota:  Variáveis ​​dentro de uma classe (ex: var $name;) são chamadas de ‘propriedades’.

Etapa 4

Adicionar funções/métodos à classe

Da mesma forma que as variáveis ​​recebem um nome diferente quando criado dentro de uma classe (‘propriedades‘), funções também são chamadas por um nome diferente quando criado dentro de uma classe – chamamos de  (‘métodos‘).

Métodos numa classe são usados ​​para manipular as suas próprias ‘propriedades‘.

<?php

class pessoa {

    var $name; 

    function set_name($new_name){

        $this->name = $new_name; 

    }

    function get_name(){

        return $this->name; 

    }
}

?>

Nota: Lembre-se que em uma classe, variáveis são chamadas de ‘propriedades‘.

Etapa 5

Funções/Métodos getter e setter

Criamos duas funções/métodos interessantes: get_name() e set_name().
Esses métodos seguem uma convenção de OOP comum que você vê em muitas línguagens (incluindo Java e Ruby) – onde você cria métodos para ‘set‘ e ‘get‘ (definir e obter) propriedades em uma classe.

Outra convenção (a convenção de nomenclatura), é que os nomes dos métodos ‘getter’ e ‘setter’ devem coincidir com os nomes das propriedades.

<?php

class pessoa {

    var $name;

    function set_name($new_name){

        $this->name = $new_name; 

    }

    function get_name(){

        return $this->name;

    }

}

?>

Nota: Observe que os nomes ‘getter’ e ‘setter’, coincidem com o nome da propriedade associada. Dessa forma, quando outros programadores PHP quiserem usar seus objetos, eles vão saber que se você tem um método/função chamada ‘set_name()’, haverá uma propriedade/variável chamada ‘name’.

Etapa 6

A variável ‘$this’

Você deve ter notado esta linha de código:

$this->name = $new_name.

O $this é uma variável interna (construída em todos os objetos) que aponta para o objeto atual, ou em outras palavras, $this é uma variável especial de auto-referência. Você pode usar $this para acessar as propriedades e chamar outros métodos da classe atual.

function get_name(){

    return $this->name;

}

Nota: Isto pode parecer um pouco confuso pra você que está vendo pela primeira vez um dos recursos internos de OO (construído em PHP 5) que automaticamente faz coisas para nós. Por agora, basta pensar em ‘$this’ como uma palavra-chave PHP OO especial. Quando o PHP da de cara com ‘$this’, o PHP sabe o que fazer.
… Espero que em breve, você também! rs*

Etapa 7

Incluindo nossa Classe no arquivo index.php

Você nunca deve criar suas classes diretamente dentro dos arquivos PHP relacionados com as páginas de seu sistema, pois desta forma estaria matando por completo o verdadeiro sentido da programação orientada à objeto!

Em vez disso sempre será a melhor prática criar as páginas php de seu site separadas dos arquivos que deverão conter apenas as classes. Para acessar suas classes deverá usar em suas páginas PHP, ‘include’ ou ‘require’.

<?php include("class_lib.php"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Aprendendo OOP em PHP 5</title>
</head> 

<body>
</body> 

</html>

Nota: Observe como não fizemos nada com a nossa classe ainda apenas à incluímos no arquivo para que possamos acessa-la posteriormente. Faremos isso a seguir.

Etapa 8

Instanciar/criar o objeto

Classes na verdade, não se tornam objetos até que você faça algo que chamamos de ‘instanciar‘.
Instanciação é o processo de criação de uma instância de um objeto na memória.
Que memória? Memória do servidor, é claro!

<?php include("class_lib.php"); ?>

...

</head>

<body>

<?php

$roberto = new pessoa();

?>

</body>

</html>

Nota: A variável ‘$roberto’ torna-se uma referência ao nosso recém criado objeto ‘pessoa’. Eu digo que ‘$roberto’ é uma referência porque usaremos ‘$roberto’ para controlar e usar o objeto ‘pessoa’.

Se você executar o código PHP agora, você não vai ver nada exibido na tela. A razão para isso, é porque ainda não dissemos ao PHP para fazer alguma coisa com o objeto que acabamos de criar.

Etapa 9

A palavra-chave ‘new’

Para criar um objeto de uma classe, você precisa usar a palavra ‘new‘.
Ao criar/instanciar uma classe, você pode opcionalmente adicionar suportes para o nome da classe, como eu fiz no exemplo abaixo. Para ser claro, você pode ver no código abaixo como eu posso criar vários objetos da mesma classe.

<?php include ("class_lib.php"); ?>

...

</head> 

<body> 

<?php

$roberto = new pessoa();
$juliana = new pessoa(); 

?>

</body> 

</html>

Nota: Ao criar um objeto, não se esqueça de citar o nome da classe.

Por exemplo:

$roberto = new 'pessoa';

… Você irá obter um erro.

Etapa 10

Definir as propriedades de objetos

Agora que nós criamos/instanciamos nossos dois objetos baseados na classe ‘pessoa’, podemos definir suas propriedades usando os métodos (setters) que criamos.
Por favor tenha em mente que, embora ambos os nossos objetos de ‘pessoa’ ($roberto e $juliana) estarem baseados na mesma classe ‘pessoa’, eles são objetos totalmente diferentes.

<?php include ("class_lib.php"); ?>

... 

</head> 

<body> 

<?php 

$roberto = new pessoa();
$juliana = new pessoa();

$roberto->set_name("Roberto Lunelli");
$juliana->set_name("Juliana Ferreira"); 

?> 

</body> 

</html>

Etapa 11

Acessando dados de um objeto

Agora vamos usar os métodos ‘getter’ para acessar os dados contidos em nossos objetos… isto é, os mesmos dados inseridos em nossos objetos utilizando os métodos ‘setter’.
Ao acessar métodos e propriedades de uma classe, você pode usar o operador seta (->).

<?php include ("class_lib.php"); ?>

...

</head> 

<body> 

<?php

$roberto = new pessoa();
$juliana = new pessoa();

$roberto->set_name("Roberto Lunelli");
$juliana->set_name("Juliana Ferreira");

echo "Nome completo de Roberto é: " . $roberto->get_name();
echo "Nome completo de Juliana é: " . $juliana->get_name(); 

?> 

</body>
</html>

Nota: O operador seta (->) não é o mesmo operador usado com ‘arrays associativos’ (=>).

Parabéns, você chegou à metade deste tutorial!
Hora de fazer uma pequena pausa e tomar um chá … OK, talvez uma cerveja.

Veja o que você já fez em um curto espaço de tempo:

• Projetou uma classe PHP.
• Gerou/criou um par de objetos com base em sua classe.
• Inseriu dados em seus objetos.
• Retirou dados de seus objetos.

Nada mau para o seu primeiro dia trabalhando com PHP OO.

Se você não tiver feito ainda, agora é um bom momento para escrever o código e vê-lo em ação.

Este tutorial continua e nossos estudos também.
Vamos para 2ª e última parte deste simples e fácil tutorial PHP 5 orientado à objetos
Bons estudos!

Tópicos relacionandos

Publicado por

Razor

Conhecedor das artes gráficas, amante de design web, amigo íntimo do desenvolvimento web, com a pretensão de aprender e ajudar à quem busca conhecimento, me faço presente. =)

6 comentários sobre “Aprenda facilmente OOP com PHP 5 (Object Oriented Programming) ou POO (Programação Orientada à Objeto) – Parte 1”

  1. Cara, seu tutorial esta muito bem escrito, estou lendo alguns faz um bom tempo para começar um projeto oop, mas ainda não tinha entendido por completo a aplicação de método, classe e objeto. Em seu tutorial pude entender completamente! Deu para notar claramente que você fez o tutorial sem pressa e com bastante cuidado para que todos viessem a entender.
    Muito obrigado!

  2. Muito legal cara suas explicações.
    mas sería muito mais útil se você explicasse como eu pegaría os dados vindo de um formulario de cadastro por exemplo, para eu saber quais os codigos do phpoo eu colocaría no meu action quando eu fosse cadastrar os dados no banco de dados, entendeu?

    Mas o que você mostrou já é um ótimo começo. Valeu!

    1. Como você mesmo disse… um começo, ou seja… muito útil pro que ele serve.
      O que vc deseja é outro assunto que poderá ser abordado futuramente quando eu tiver tempo.
      Esse site sobrevive de doações, ou seja está morrendo.
      Bons estudos

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *