Introdução ao PHP orientado a objeto

PHP - um acrônimo recursivo para "PHP: Hypertext Preprocessor", originalmente Personal Home Page - é uma linguagem originalmente construída para construção de páginas WEB dinâmicas. Com o tempo, houve uma evolução, outras linguagens surgiram com o mesmo objetivo, ASP, JSP, entre outros. Algumas inclusive unindo as capacidades de suas plataformas mãe, igual o JSP que faz parte do Java e faz uso massivo de objetos. A Microsoft ainda evoluiu toda a sua plataforma para algo semelhante ao Java, houve a necessidade do PHP também evoluir.
Agora ele é capaz de realizar coisas semelhantes as outras plataformas, de modo que a escolha entre as várias tecnologias acaba que recai principalmente na experiência da equipe, pois os mesmos resultados podem ser obtidos. E a orientação a objetos não ficou atrás.
  • Exemplo de objeto PHP:


PHPTestes
|
|_index.php
|_Teste.php
Note que a estrutura do site de teste, é uma página principal e uma classe Teste.
  • Código da classe Teste:
 
<?php
class Teste {
    //put your code here
    private $nome;
    private $endereco;
    public function getNome(){
            return $this->nome;
    }

    public function setNome($nome){
            $this->nome = $nome;
    }

    public function getEndereco(){
            return $this->endereco;
    }

    public function setEndereco($endereco){
            $this->endereco = $endereco;
    }
}

  • Explicando os elementos:
    • <?php - é o que marca o código PHP do arquivo. Normalmente o código estaria entre <?php ?>. Note que apenas abrimos o código e não fechamos. Haveria necessidade de fechar, se caso houvesse também código HTML.
    • class Teste{ - aqui se começa a codificação da classe. Esse nome deve ser o mesmo do arquivo.
    • Os atributos são variáveis PHP normais, os nomes são sempre iniciados por $ e não tem tipo definido (por isso PHP é uma linguagem fracamente tipada). São os atributos $nome e $endereco.
    • private $nome - um dos atributos da classe. Deve ter a notação private, para sinalizar encapsulamento (garantir que a variável não seja acessada diretamente por qualquer um).
    • public function getNome(){ - um dos métodos. De acordo com a notação de uma classe normal, os atributos somente devem ser acessados pelos métodos. Veja que entre { }, tem o código
      • return $this->nome; - aqui você está dizendo para retornar por esse método o valor de nome.
    • public function setNome($nome){ - através desse método, você pode atribuir um valor ao atributo $nome. Dentro de { } tem o código
      • $this->nome = $nome; - sinalizando que o valor da variável $nome é diferente de $this->nome, a primeira é a variável do método, a segunda é o atributo da classe. O valor que será passado para essa variável vai para o atributo $nome.
    • IMPORTANTÍSSIMO -$this-> é importante para que você referencie um atributo dentro da classe. Caso contrário, será apenas uma variável qualquer, e nenhum acesso ao atributo.
  • A classe em ação:
Código de index.php:

<?php include 'Teste.php'; ?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Site</title>
    </head>
    <body>
        Over
        <?php
        $teste=new Teste();
        $teste->setNome('Adamastor Pitaco');
        $teste->setEndereco('Rua 8, número 40');
        ?>
        <p><?php echo $teste->getNome(); ?>
            <br><?php echo $teste->getEndereco(); ?>
    </body>
</html>
  •  <?php include 'Teste.php'; ?> - a classe precisa ser incluída no arquivo onde será usada.
  • $teste=new Teste(); - e ela deve ser declarada no lugar onde ela será usada, caso contrário, nada de classe.
  • $teste->setNome('Adamastor Pitaco'); - exemplo de atribuição de valor.
  • <?php echo $teste->getNome(); ?> - exemplo de exibição de valor na página.
  • Resultado: ele irá exibir os valores atribuídos a classe. Só testar em um ambiente devidamente preparado.
  • Nesse caso, os diversos trechos em PHP estão delimitados pelos sinalizadores <?php e ?>. Porque alternam entre os códigos php e html na página (obviamente pode adicionar JavaScript também).
  • Note o encapsulamento usado, pois nenhuma variável PHP foi acessada diretamente, e sim pelos métodos get e set.

Aqui temos um hello world de PHP orientado a objetos.

Comentários

Postagens mais visitadas deste blog

Bitbucket Pipeline CI/CD usando Git FTP

Desenvolvo sua página de negócio