slides métodos mágicos

23

Upload: wellson-almeida

Post on 09-Nov-2015

14 views

Category:

Documents


2 download

DESCRIPTION

tytyt

TRANSCRIPT

  • 2DesenvolvimentoOrientado a Objetos com PHP

  • 3Mtodos Mgicos Chamados pelo PHP em diferentes momentos da vida

    do objeto;

    Disparados de acordo com a funo ou evento

    chamados;

    teis para moldar o comportamento dos objetos

    Todo mtodo mgico precedido por __

    (duplo underline).

  • 4Mtodos Mgicos__constructO mtodo mgico __construct, comumente chamado de construtor, executado pelo PHP toda vez que um objeto instanciado, ou seja, criado na memria.

    Por exemplo:

  • 5Mtodos Mgicos__destructO mtodo mgico __destruct, comumente chamado de destrutor, executado pelo PHP toda vez que um objeto destrudo. Um objeto destrudo quando todas as referncias a ele so desfeitas.

  • 6Mtodos Mgicos__cloneO mtodo mgico __clone executado pelo PHP toda vez que um objeto clonado. Por exemplo:
  • 7Mtodos Mgicos__destructO mtodo mgico __destruct, comumente chamado de destrutor, executado pelo PHP toda vez que um objeto destrudo. Um objeto destrudo quando todas as referncias a ele so desfeitas.

  • 8Mtodos Mgicos__setO mtodo mgico __set executado pelo PHP toda vez que uma propriedade indefinida passada a um objeto.

    Por exemplo:

  • 9Mtodos Mgicos__getO mtodo mgico __get executado pelo PHP toda vez que se tenta acessar uma propriedade indefinida de um objeto.

    Por exemplo:

  • 10

    Mtodos Mgicos__callO mtodo mgico __call executado pelo PHP toda vez que um mtodo indefinido chamado.

    Por exemplo:

  • 11

    Mtodos Mgicos__callStaticO mtodo mgico __callStatic executado pelo PHP toda vez que um mtodo esttico indefinido chamado. Por exemplo:

  • 12

    Mtodos Mgicos__invokeO mtodo mgico __invoke executado pelo PHP toda vez tentamos acessar nosso objeto como se fosse um closure.

    Por exemplo:

  • 13

    Mtodos Mgicos__toStringO mtodo mgico __toString executado pelo PHP toda vez que se tenta dar um echo em um objeto.

    Por exemplo:

  • 14

    Mtodos Mgicos__issetO mtodo mgico __isset executado pelo PHP toda vez que usa-se a funo isset() ou empty() em uma propriedade indefinida. Lembre-se:

    - isset: informa se a varivel foi criada.- empty: informa se a varivel est vazia.

    Por exemplo:

  • 15

    Mtodos Mgicos__unsetO mtodo mgico __unset executado pelo PHP toda vez que usa-se a funo unset() em uma propriedade indefinida.

    Por exemplo:

  • 16

    Mtodos Mgicos__sleep e __wakeupO mtodo mgico __sleep executado pelo PHP toda vez que usa-se a funo serialize() em um objeto. Objetos no podem ser serializados automaticamente no PHP, portanto, voc precisa especificar uma maneira de serializ-los.

    O mtodo mgico __sleep ir ajud-lo a fazer isso.

    O mtodo mgico __wakeup, por sua vez, faz o inverso: executado pelo PHP toda vez que usa-se a funo unserialize() em um objeto, reinstanciando o objeto e alocando as propriedades salvas pelo __sleep.Em outras palavras, __wakeup reconstri o objeto serializado.

    Veja a seguir um exemplo da utilizao de __sleep e __wakeup:

  • 17

    Mtodos Mgicos

  • 18

    Mtodos Mgicos__sleep e __wakeup

    public function __sleep() {return array('nome', 'marca', 'cor');

    }

    public function __wakeup() {$this->criar();

    }}

    $fusca = new Carro(Fusca, VW, Preto);$serial = serialize($fusca);

    unset($fusca);

    $fiesta = unserialize($serial);

    Experimente dar um echo na varivel $serial para entender o que faz a funo serialize().

  • 19

    Mtodos Mgicos__autoloadO mtodo mgico __autoload executado pelo PHP toda vez que um objeto instanciado a partir de uma classe. O PHP ir chamar o mtodo __autoload e passar para ele o nome da classe como parmetro.

  • 20

    Mtodos Mgicos__autoloadUm timo exemplo prtico para o uso de __autoload quando queremos carregar os arquivos que contm as classes apenas quando tais classes forem instanciadas.

    Dessa forma, alm de sempre garantir que o arquivo com a classe a ser usada ser includo, garante-se tambm que classes no utilizadas no sero includas, otimizando o cdigo da aplicao.

  • 21

    Desafio OnlineAnalise o cdigo do arquivo Banco.php:

  • 22

    Desafio OnlineAnalise agora o cdigo do arquivo acessar.php:

  • 23

    Desafio OnlineCom base no cdigo apresentado, crie um sistema bsico de cadastro de dados.Veja que no exemplo apresentado, estamos realizando uma insero e consultas estticas.Crie um formulrio para o cadastro dos dados e uma pgina para a visualizao das informaes do Banco.

    Fique vontade para alterar o cdigo mostrado (acrescentando, por exemplo, mtodos mgicos como __construct).

    cadastro.php Banco.php

    FormulrioNomeEnderecoTelefone

    acessar.php

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23