0
Introdução ao PHP
orientado a objetos
com AJAX

      Otávio Calaça Xavier
        otavio@javacerrado.org
Orientação a Objetos
  Classe                       Abstração

 Objetos                      Interface
               ...
Classe
  Representação abstrata de objetos com

  características afins.
 Define e Descreve as ações providas pelos
  se...
Abstração
    Habilidade de se concentrar nas partes

    principais de um determinado contexto
    desprezando as caract...
Objetos
  Instancia de uma classe

 Implementação de uma classe que prove
  as ações (métodos) e informações
  (atributo...
Atributos
  Características ou informações dos objetos

 Ex: cor, ano, modelo, marca.


    Em PHP:
             class ...
Métodos
  Ações de um objeto definidas na classe

  que o abstrai.
 Ex: darPartida(), acelerar(), frear().

            ...
Método Construtor
  Ação realizada no momento em que é

  criada uma nova instancia (objeto) de uma
  classe.
 Em PHP:  ...
Método Destrutor
  Método que será chamado assim que

  todas as referências a um objeto particular
  forem removidas ou ...
Classe e Método Abstrato
  Descreve um comportamento geral para as

   sub-classes de uma classe.
 Somente o que farão e...
Atributos e Métodos estáticos
  Se referem a classe e não aos objetos

  desta.
 Não precisa de instanciar a classe.
 E...
Herança
  Mecanismo pelo qual uma classe (sub-

  classe) pode estender uma outra classe
  (super-classe) visando menos r...
Visibilidade
  Modificadores de acesso.

 Public => pode ser acessado em todo o
  escopo do programa
 Protected => aces...
Encapsulamento
  Separação dos aspectos internos e

  externos dos objetos.
 Atributos  só podem ser acessados
  indiret...
Polimorfismo
    Um mesmo método pode apresentar várias

    formas, de acordo com seu contexto.
                        ...
Interfaces
  Classe Avião estende a classe Veiculo

 Classe Urubu estende a classe Animal

             Veiculo         ...
Interfaces(II)
    Define um comportamento para classes de

    diferentes escopos.
                Interface:           ...
AJAX

    Asynchronous Javascript And XML



    Maior interação com o usuário.





                Introdução ao PHP o...
AJAX
         Sem AJAX                                          Com AJAX
     ●                                           ...
O Objeto XMLHttpRequest
  Faz uma requisição assíncrona para o

  servidor da aplicação.
 Pode atualizar o conteúdo da p...
O Objeto XMLHttpRequest (II)
  Também chamado de XHR

 Por não estar padronizado, pode ser
  instanciado de formas difer...
Métodos do XHR
    abort();

    getAllResponseHeaders() ;

    getResponseHeader(quot;headernamequot;);

    open(quot...
open()
    Especifica alguns atributos da requisição.

    5 argumentos: 3 obrigatórios e 2 opcionais.



    1º Arg: Mé...
send() e abort()
    send();


       Envia a requisição.
       Passa os parâmetros (POST).

    abort();


       Canc...
Métodos de Cabeçalho

    getResponseHeader(quot;headernamequot;);


          Pega um parâmetro do cabeçalho de resposta...
Propriedades do XHR
  onreadystatechange

 readyState
 responseText
 responseXML
 status
 statusText




           ...
Propriedades do XHR
    onreadystatechange


         Handler de um evento chamado em cada mudança de estado.


    ready...
Propriedades do XHR
    responseText


         Resposta da requisição em formato texto ( string ).


    responseXML


...
Propriedades do XHR
    status


         Retorna o status como um numero.
         Ex: 200 para “OK”, 404 para “Not Foun...
Criando Objeto XHR
    Exemplo:   try
                {
                 // Firefox, Opera 8.0+, Safari, etc...
         ...
Requisitando com XHR
    Exemplo:

     function ajax(url, metodo, parametros) {
        xmlHttp.onreadystatechange = mud...
FIM


Otávio Calaça Xavier
otavio@javacerrado.org




    Introdução ao PHP orientado a objetos com AJAX
                 ...
Upcoming SlideShare
Loading in...5
×

Introdução ao PHP Orientado a Objetos com Ajax

6,587

Published on

Slides de oficina sobre o desenvolvimento orientado a objetos com PHP, ministrado em abril de 2007 no FLISOL-GO. São apresentados conceitos como Classes, Objetos, Abstração, Herança, Polimorfismo, Encapsulamento e Interfaces, entre outros.

Published in: Technology
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,587
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
293
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Transcript of "Introdução ao PHP Orientado a Objetos com Ajax"

  1. 1. Introdução ao PHP orientado a objetos com AJAX Otávio Calaça Xavier otavio@javacerrado.org
  2. 2. Orientação a Objetos Classe Abstração   Objetos Interface Herança  Métodos Encapsulamento  Atributos Polimorfismo  Visibilidade  Construtores Destrutores Introdução ao PHP orientado a objetos com AJAX 2 <Otávio Calaça Xavier>
  3. 3. Classe Representação abstrata de objetos com  características afins.  Define e Descreve as ações providas pelos seus objetos, bem como as informações que esses podem conter.  Ex: Veículo  Em PHP: class Veiculo { // atributos // métodos } Introdução ao PHP orientado a objetos com AJAX 3 <Otávio Calaça Xavier>
  4. 4. Abstração Habilidade de se concentrar nas partes  principais de um determinado contexto desprezando as características menos importantes ou acidentais. Introdução ao PHP orientado a objetos com AJAX 4 <Otávio Calaça Xavier>
  5. 5. Objetos Instancia de uma classe   Implementação de uma classe que prove as ações (métodos) e informações (atributos) que esta classe define e descreve.  Ex: Corsa  Em PHP: $corsa = new Veiculo(); Introdução ao PHP orientado a objetos com AJAX 5 <Otávio Calaça Xavier>
  6. 6. Atributos Características ou informações dos objetos   Ex: cor, ano, modelo, marca. Em PHP:  class Veiculo { public $cor; public $modelo; // métodos } $corsa = new Veiculo(); $corsa->cor = “Branco”; $corsa->modelo = “Sedan”; Introdução ao PHP orientado a objetos com AJAX 6 <Otávio Calaça Xavier>
  7. 7. Métodos Ações de um objeto definidas na classe  que o abstrai.  Ex: darPartida(), acelerar(), frear(). class Veiculo { // atributos Em PHP:  public function acelerar() { //algorítimo para acelerar } } $corsa = new Veiculo(); $corsa->acelerar(); Introdução ao PHP orientado a objetos com AJAX 7 <Otávio Calaça Xavier>
  8. 8. Método Construtor Ação realizada no momento em que é  criada uma nova instancia (objeto) de uma classe.  Em PHP: class Veiculo { __construct($nome) { echo “veiculo ”.$nome.” criado!”; } } $corsa = new Veiculo('Corsa'); Saida: veiculo Corsa criado! Introdução ao PHP orientado a objetos com AJAX 8 <Otávio Calaça Xavier>
  9. 9. Método Destrutor Método que será chamado assim que  todas as referências a um objeto particular forem removidas ou quando o objeto for explicitamente destruído.  Em PHP: class Veiculo { private $nome; function __construct($nome) { $this->nome = $nome; echo quot;Criando veiculo quot;.$this->nome.quot;nquot;; } function __destruct() { echo quot;Destruindo veiculo quot;.$this->nome.quot;nquot;; } } Introdução ao PHP orientado a objetos com AJAX 9 <Otávio Calaça Xavier>
  10. 10. Classe e Método Abstrato Descreve um comportamento geral para as  sub-classes de uma classe.  Somente o que farão e não como farão.  A classe que tem um método abstrato também deve ser declarada como abstrata.  Todas as sub-classes da classe abstrata devem sobrescrever seus método abstratos. Introdução ao PHP orientado a objetos com AJAX 10 <Otávio Calaça Xavier>
  11. 11. Atributos e Métodos estáticos Se referem a classe e não aos objetos  desta.  Não precisa de instanciar a classe.  Em PHP: class Veiculo { public static $quantidade = “1”; } echo Veiculo::$quantidade; Saida: 1 $corsa = new Veiculo(); echo $corsa->quantidade; Saida: Erro! Introdução ao PHP orientado a objetos com AJAX 11 <Otávio Calaça Xavier>
  12. 12. Herança Mecanismo pelo qual uma classe (sub-  classe) pode estender uma outra classe (super-classe) visando menos repetição de codigo.  Ex: classe Moto estende classe Veículo.  Em PHP: class Moto extends Veiculo { //metodos e atributos da classe Moto. } $cgTitan = new Moto(); => $cgTitan contem todos os métodos e atributos dos veículos Introdução ao PHP orientado a objetos com AJAX 12 <Otávio Calaça Xavier>
  13. 13. Visibilidade Modificadores de acesso.   Public => pode ser acessado em todo o escopo do programa  Protected => acessível apenas na classe em que foi declarado e em suas filhas (sub-classes)  Private => acessível apenas na classe onde foi declarado. Introdução ao PHP orientado a objetos com AJAX 13 <Otávio Calaça Xavier>
  14. 14. Encapsulamento Separação dos aspectos internos e  externos dos objetos.  Atributos só podem ser acessados indiretamente através de métodos.  Em PHP: class Veiculo { private $nome; public function getNome() { return $this->nome; } public function setNome($nome) { $this->nome = $nome; } } Introdução ao PHP orientado a objetos com AJAX 14 <Otávio Calaça Xavier>
  15. 15. Polimorfismo Um mesmo método pode apresentar várias  formas, de acordo com seu contexto. Abstrato Veiculo acelerar() Carro Submarino Avião acelerar() acelerar() acelerar() Introdução ao PHP orientado a objetos com AJAX 15 <Otávio Calaça Xavier>
  16. 16. Interfaces Classe Avião estende a classe Veiculo   Classe Urubu estende a classe Animal Veiculo Animal Carro Submarino Avião Lobo Baleia Urubu Como definir o comportamento comum -  voar - entre Urubu e Avião? Introdução ao PHP orientado a objetos com AJAX 16 <Otávio Calaça Xavier>
  17. 17. Interfaces(II) Define um comportamento para classes de  diferentes escopos. Interface: Voadores Veiculo Animal Carro Submarino Avião Lobo Baleia Urubu Todos os métodos são públicos e abstratos  Introdução ao PHP orientado a objetos com AJAX 17 <Otávio Calaça Xavier>
  18. 18. AJAX Asynchronous Javascript And XML  Maior interação com o usuário.  Introdução ao PHP orientado a objetos com AJAX 18 <Otávio Calaça Xavier>
  19. 19. AJAX Sem AJAX Com AJAX ● ● Navegador Navegador Pag. WEB Pag. WEB Servidor da Servidor da Pag. WEB Aplicação Aplicação Página WEB WEB da WEB Pag. WEB Pag. WEB Pag. WEB Introdução ao PHP orientado a objetos com AJAX 19 <Otávio Calaça Xavier>
  20. 20. O Objeto XMLHttpRequest Faz uma requisição assíncrona para o  servidor da aplicação.  Pode atualizar o conteúdo da pagina sem que esta seja recarregada.  Ainda não é uma recomendação padronizada pela W3C e sim um ‘esboço’ ou Working Draft. Introdução ao PHP orientado a objetos com AJAX 20 <Otávio Calaça Xavier>
  21. 21. O Objeto XMLHttpRequest (II) Também chamado de XHR   Por não estar padronizado, pode ser instanciado de formas diferentes de acordo com o navegador.  Internet Explorer: xmlHttp = new ActiveXObject(quot;Msxml2.XMLHTTPquot;); ou xmlHttp = new ActiveXObject(quot;Microsoft.XMLHTTPquot;); Outros navegadores:  xmlHttp = new XMLHttpRequest(); Introdução ao PHP orientado a objetos com AJAX 21 <Otávio Calaça Xavier>
  22. 22. Métodos do XHR abort();  getAllResponseHeaders() ;  getResponseHeader(quot;headernamequot;);  open(quot;metodoquot;,quot;URLquot;,async,quot;usuarioquot;,“senhaquot;);  send(content);  setRequestHeader(quot;labelquot;,quot;valuequot;);  Introdução ao PHP orientado a objetos com AJAX 22 <Otávio Calaça Xavier>
  23. 23. open() Especifica alguns atributos da requisição.  5 argumentos: 3 obrigatórios e 2 opcionais.  1º Arg: Método de envio: “GET” ou “POST”  2º Arg: URL que será requisitada.  3º Arg: Assíncrono? true ou false.  4º Arg: Usuário para acesso ao servidor.  5º Arg: Senha para acesso ao servidor.  Introdução ao PHP orientado a objetos com AJAX 23 <Otávio Calaça Xavier>
  24. 24. send() e abort() send();  Envia a requisição. Passa os parâmetros (POST). abort();  Cancela a requisição. Introdução ao PHP orientado a objetos com AJAX 24 <Otávio Calaça Xavier>
  25. 25. Métodos de Cabeçalho getResponseHeader(quot;headernamequot;);  Pega um parâmetro do cabeçalho de resposta. getAllResponseHeaders();  Pega todos os parâmetros do cabeçalho de resposta em forma de string. setRequestHeader(quot;labelquot;,quot;valuequot;);  Seta um parâmetro do cabeçalho de envio. Introdução ao PHP orientado a objetos com AJAX 25 <Otávio Calaça Xavier>
  26. 26. Propriedades do XHR onreadystatechange   readyState  responseText  responseXML  status  statusText Introdução ao PHP orientado a objetos com AJAX 26 <Otávio Calaça Xavier>
  27. 27. Propriedades do XHR onreadystatechange  Handler de um evento chamado em cada mudança de estado. readyState  Estado atual do objeto. Pode ser: 0 = uninitialized 1 = loading 2 = loaded 3 = interactive 4 = complete Introdução ao PHP orientado a objetos com AJAX 27 <Otávio Calaça Xavier>
  28. 28. Propriedades do XHR responseText  Resposta da requisição em formato texto ( string ). responseXML  Resposta da requisição em formato de XML (XML document object). Introdução ao PHP orientado a objetos com AJAX 28 <Otávio Calaça Xavier>
  29. 29. Propriedades do XHR status  Retorna o status como um numero. Ex: 200 para “OK”, 404 para “Not Found”... statusText  Retorna o status em formato texto (string) Ex: “OK”, “Not Found”... Introdução ao PHP orientado a objetos com AJAX 29 <Otávio Calaça Xavier>
  30. 30. Criando Objeto XHR Exemplo: try  { // Firefox, Opera 8.0+, Safari, etc... xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject(quot;Msxml2.XMLHTTPquot;); } catch (e) { xmlHttp=new ActiveXObject(quot;Microsoft.XMLHTTPquot;); } } Introdução ao PHP orientado a objetos com AJAX 30 <Otávio Calaça Xavier>
  31. 31. Requisitando com XHR Exemplo:  function ajax(url, metodo, parametros) { xmlHttp.onreadystatechange = mudouEstado; xmlHttp.open(metodo,url,true); xmlHttp.setRequestHeader(quot;Content-lengthquot;, parametros.length); xmlHttp.send(parametros); } function mudouEstado() { if (xmlHttp.readyState==4 && xmlHttp.status == 200) { texto = xmlHttp.responseText; xml = xmlHttp.responseXML; if(divNome) { document.getElementById(divNome).innerHTML = texto; } } } Introdução ao PHP orientado a objetos com AJAX 31 <Otávio Calaça Xavier>
  32. 32. FIM Otávio Calaça Xavier otavio@javacerrado.org Introdução ao PHP orientado a objetos com AJAX 32 <Otávio Calaça Xavier>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×