quarta-feira, 27 de fevereiro de 2013

Introdução a Orientação a Objetos no PHP - parte 1

Esta a primeira parte da Introdução a Orientações a Objetos no PHP. Neste vídeo mostrarei como criar uma classe simples com apenas 1 atributo e 2 métodos, instanciar o objeto, definir e recuperar o valor do objeto.

A Orientação a Objetos (OO) é o desenvolvimento de uma estratégia em que os sistemas devem ser construídos baseados em uma coleção de componentes reusáveis conhecidos como objetos. Possuem basicamente duas características:

  • Objetos possuem dados (atributos);
  • Objetos manipulam dados e fazem coisas (métodos).

Classe
Uma classe é a abstração, um modelo a partir do qual os objetos podem ser criados, mostrando quais devem ser suas características (atributos) e quais devem ser suas funcionalidades (métodos)

Atributo
A coleção de atributos representa o que uma classe sabe (os dados que a classe possui). Na programação os atributos são as variáveis que definimos para a classe.

Método
Definem o que as classes sabem fazer, podem alterar os atributos e realizar funções inerentes a classe. Na programação podemos pensar em métodos como funções na classe.

Visibilidade de Atributos e Métodos
Os atributos e métodos de uma classe podem ser definidos como:

  • public (público), é acessível em qualquer lugar da classe, de suas subclasses, bem como em qualquer parte dos scripts que contém a classe;
  • protected (protegido), são visíveis pela classe que os criou e por suas subclasses (classes que herdam a classe principal), porém não são acessíveis fora deste contexto;
  • private (privado), são visíveis apenas na classe que os criou. Subclasses ou o script que contém a classe não podem acessar estes atributos e métodos de forma direta.


Objeto
É a entidade que desejamos generalizar (torná-la uma classe) e pode ser uma pessoa, um lugar, um evento, um conceito, um relatório, uma tela, enfim qualquer coisa do mundo real. Em relação a banco de dados, podemos enxergar um objeto como um dos registros de uma tabela.


Primeiramente criamos uma classe Cliente que terá uma atributo nome com a visibilidade public, como ilustra o trecho do código:
class Cliente {
    //Atributos
    public $nome;
}

Em seguida definimos dois métodos com visibilidade public. Um método chamado setNome, sua função é definir um valor para o atributo nome, e outro método chamado getNome, com a função de recuperar o valor de nome gravado no objeto.
//Métodos
public function setNome($nome)
{
    $this->nome = $nome;
}
    
public function getNome()
{
    return $this->nome;
}
Para simplificar colocamos nosso código html no mesmo arquivo Cliente.php, que consiste num formulário para salvar o nome do cliente, segue o código:

<html>
    <head>
        
        Classe Cliente
    </head>
    <body>
        
</body> </html>

E finalmente tratamos o retorno do formulário com o script PHP a seguir:
<?php
    if(!empty($_GET))
    {
        $nome = $_GET['nome'];
        $idade = $_GET['idade'];
        $cliente = new Cliente();
        $cliente->setNome($nome);
        echo $cliente->getNome() . ", salvo com sucesso.<>";
    }
?>
Segue o código completo do exemplo:
<?php
/**
 * Classe Cliente
 *
 * @author Luiz Carlos
 */
class Cliente {
    //Atributos
    public $nome;
    protected $idade;
    //Métodos
    public function setNome($nome)
    {
        $this->nome = $nome;
    }
    
    public function setIdade($idade)
    {
        if($idade > 130)
        {
            exit();
        }
        else
        {
            $this->idade = $idade;
        }
    }

    public function getNome()
    {
        return $this->nome;
    }
    
    public function getIdade()
    {
        return $this->idade;
    }
}
?>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html" charset="UTF-8"/>
        <title>Classe Cliente</title>
    </head>
    <body>
        <?php
            if(!empty($_GET))
            {
                $nome = $_GET['nome'];
                $idade = $_GET['idade'];
    $cliente = new Cliente();
    $cliente->setNome($nome);
    $cliente->setIdade($idade);
    echo $cliente->getNome() . ", salvo com sucesso.<>";
    echo $cliente->getIdade() . " anos de idade.";
            }
        ?>
        <form name="fcliente" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
            <label for="nome">Nome</label>
            <input name="nome" type="text" maxlength="30" size="30"/>
            <label for="idade">Idade</label>
            <input name="idade" type="text" maxlength="3" size="3" />
            <input value="Salvar" type="submit">
        </form>
    </body>        
</html>
Até a próxima. Bom estudo!

Fonte:
Walaca Soares
PHP 5: Conceitos, Programação e Integração com Banco de Dados
6ª ed. revisada - São Paulo, Editora Érica, 2010

Nenhum comentário:

Postar um comentário

Comentemm, vamos compartilhar experiências!