Curso de PHP Orientado a Objetos – Parte 10

Slide1Décimo artigo do curso de PHP Orientado a Objetos. Veremos dessa vez o o método especial “__autoload” e algumas funções para manipulação de objetos.

Estamos de volta para mais um artigo do curso de PHP Orientado a Objetos. Hoje estudaremos o método __autoload e algumas funções necessárias para a manipulação de objetos.

Para conhecer as demais partes do curso, clique aqui.

Ao final deste artigo, você será capaz de:

  • Utilizar o método __autoload para carregar suas classes;
  • Utilizar os métodos: get_class_methods, is_a, get_parent_class, get_objetct_vars e get_class_vars.

O método __autoload()

A partir da versão 5  do PHP, foi inserido uma nova forma de carregar classes. Essa abordagem para carregamento “sob demanda” é feita através da função __autoload. Está função permite que o desenvolvedor não tenha que declarar uma longa lista de includes ou require_once no início de cada script.

O que fizemos até agora foi criar as classes de forma isolada e incluí-las separadamente em um arquivo.

Veja o exemplo:
Arquivo Classe1.class.php

Arquivo Classe2.class.php

Arquivo Classe3.class.php

Agora suponhamos que seja necessário carregar todas essas 3 classes em um arquivo. O procedimento normal seria:

Arquivo Carregar.php

Observe que quanto mais classes forem utilizadas, maior o número de arquivos que devem ser carregados no início do script.
Para aliviar a vida do programador, além de ser uma boa prática, podemos fazer uso da função __autoload substituindo o bloco de require_once.

Vamos ao exemplo:

Suponha que os arquivos Classe1.class.php, Classe2.class.php e Classe3.class.php já estejam criados.

Arquivo Carregar.php

Perceba que o nome da classe a ser instanciada deve ser o início do nome do arquivo. Dessa forma não termos problemas ao criar os objetos.

Agora que conhecemos o método __autoload, vamos estudar algumas funções para manipulação de objetos. Certamente no futuro você fará uso de algumas delas.

get_class_methods

Esta função é responsável por retornar os nomes dos métodos de uma classe. Este retorno se da por meio de um vetor.

Suponha que uma classe chamada Carro tenha os métodos: Acelerar, Frear e Ligar. Agora vamos executar a função:

O retorno seria:

Is_a

Verifica o tipo de uma classe. Vamos considerar a classe Funcionario. Em seguida, vamos criar uma classe filha chamada Estagiario.

Agora que vamos criar um objeto do tipo Estagiário e em seguida verificar o tipo.

Ao executar, como o objeto é to tipo funcionário, a primeira mensagem seria chamada: “Objeto do tipo funcionario”.

get_parent_class

Basicamente o que o get_parent_class faz é retornar a classe-pai de um objeto. Considerando a mesma estrutura do exemplo anterior (classe Funcionario e a classe Estagiário), a execução da função se daria da seguinte forma:

O retorno dessa função seria o nome da classe pai:

get_objetct_vars

Esta função retorna o nome e conteúdo das propriedades de um objeto. Vamos analisar o exemplo:

O resultado seria:

get_class_vars

Utilizada para retornar (também em forma de array) as propriedades de uma classe.
Vamos ao exemplo:

O resultado:

Assim terminamos mais uma aula.
Na próxima, estudaremos de forma detalhada o tratamento de erros, prática fundamental para um bom programador.

Não se esqueça de comentar.


14 Responses to Curso de PHP Orientado a Objetos – Parte 10

  1. Roger Lima disse:

    Excelente curso! Obrigado.

  2. Josemsr disse:

    Parabéns Leandro, ta muito bom mesmo, votei em jquery. Realmente foram poucas horas de desenvolvimento web no Senai.

  3. Cassiano disse:

    Excelente Curso!

    O melhor que já encontrei na internet até hoje!

  4. Daniel disse:

    Muito Show adorei o material, continue assim, pois voce explica muito bem.
    Um abraço.

  5. Daniel disse:

    Muito Show. Adorei o material, continue assim, pois voce explica muito bem.
    Estou aguardando a aula de Jquery sair.
    Um abraço.
    Daniel

  6. Agora falta apenas falar do spl_autoload_register e a vantagem de se usar ele em cima do __autoload
    Mas acredito que você irá abordar isso quando entrar em Spl.
    No de mais, parabéns pela iniciativa.
    Precisa apenas de um improvement no PHP O.O, quando usar encapsulamento X, quando usar Y, pq usar public? pq ter um setter, e assim vai… mas parabéns pelo esforço.

  7. Julio Alves disse:

    Show amigão! Ajudando muita Gente!

  8. Wallace Rodrigues disse:

    Meus parabéns você tem uma ótima didática, ansioso pelo curso de jquery.

  9. welington disse:

    Muito bom este curso, parabéns pela iniciativa.

Deixe uma resposta para Daniel Cancelar resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *