Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introdução ao PHP Orientado a Objetos com Ajax

7,199 views

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
  • Be the first to comment

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>

×