Introdução ao PHP Orientado a Objetos com Ajax
-
Upload
otavio-calaca-xavier -
Category
Technology
-
view
6.615 -
download
6
description
Transcript of Introdução ao PHP Orientado a Objetos com Ajax
![Page 2: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/2.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 2
Orientação a Objetos
Classe Objetos Métodos Atributos Visibilidade Construtores
AbstraçãoInterfaceHerançaEncapsulamentoPolimorfismoDestrutores
![Page 3: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/3.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 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
}
![Page 4: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/4.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 4
Abstração
Habilidade de se concentrar nas partes principais de um determinado contexto desprezando as características menos importantes ou acidentais.
![Page 5: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/5.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 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();
![Page 6: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/6.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 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”;
![Page 7: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/7.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 7
Métodos
Ações de um objeto definidas na classe que o abstrai.
Ex: darPartida(), acelerar(), frear().
Em PHP: class Veiculo {
// atributospublic function acelerar() {
//algorítimo para acelerar}
}
$corsa = new Veiculo();$corsa->acelerar();
![Page 8: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/8.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 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!
![Page 9: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/9.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 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 "Criando veiculo ".$this->nome."\n";
}function __destruct() {
echo "Destruindo veiculo ".$this->nome."\n";}
}
![Page 10: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/10.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 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.
![Page 11: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/11.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 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!
![Page 12: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/12.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 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
![Page 13: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/13.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 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.
![Page 14: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/14.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 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;}
}
![Page 15: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/15.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 15
Polimorfismo
Um mesmo método pode apresentar várias formas, de acordo com seu contexto.
Veiculoacelerar()
Carroacelerar()
Submarinoacelerar()
Aviãoacelerar()
Abstrato
![Page 16: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/16.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 16
Interfaces
Classe Avião estende a classe Veiculo Classe Urubu estende a classe Animal
Como definir o comportamento comum -voar - entre Urubu e Avião?
Veiculo
Carro Submarino Avião
Animal
Lobo Baleia Urubu
![Page 17: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/17.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 17
Interfaces(II)
Define um comportamento para classes de diferentes escopos.
Todos os métodos são públicos e abstratos
Veiculo
Carro Submarino Avião
Animal
Lobo Baleia Urubu
VoadoresInterface:
![Page 18: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/18.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 18
AJAX
Asynchronous Javascript And XML
Maior interação com o usuário.
![Page 19: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/19.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 19
AJAX
Servidor da Aplicação
WEB
NavegadorPag. WEB
Pag. WEB
Pag. WEB
Pag. WEB
Pag. WEB
Pag. WEB
Servidor da Aplicação
WEB
Navegador
Página da WEB
● Sem AJAX ● Com AJAX
![Page 20: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/20.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 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.
![Page 21: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/21.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 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:
Outros navegadores:xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); ouxmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlHttp = new XMLHttpRequest();
![Page 22: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/22.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 22
Métodos do XHR abort(); getAllResponseHeaders() ; getResponseHeader("headername"); open("metodo","URL",async,"usuario",“senha"); send(content); setRequestHeader("label","value");
![Page 23: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/23.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 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.
![Page 24: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/24.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 24
send() e abort() send();
abort();
Envia a requisição.
Passa os parâmetros (POST).
Cancela a requisição.
![Page 25: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/25.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 25
Métodos de Cabeçalho
getResponseHeader("headername");
getAllResponseHeaders();
setRequestHeader("label","value");
Pega um parâmetro do cabeçalho de resposta.
Pega todos os parâmetros do cabeçalho de resposta em forma de string.
Seta um parâmetro do cabeçalho de envio.
![Page 26: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/26.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 26
Propriedades do XHR onreadystatechange readyState responseText responseXML status statusText
![Page 27: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/27.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 27
Propriedades do XHR onreadystatechange
readyState
Handler de um evento chamado em cada mudança de estado.
Estado atual do objeto. Pode ser:
0 = uninitialized1 = loading2 = loaded3 = interactive4 = complete
![Page 28: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/28.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 28
Propriedades do XHR responseText
responseXML
Resposta da requisição em formato texto ( string ).
Resposta da requisição em formato de XML (XML document object).
![Page 29: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/29.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 29
Propriedades do XHR status
statusText
Retorna o status como um numero. Ex: 200 para “OK”, 404 para “Not Found”...
Retorna o status em formato texto (string)Ex: “OK”, “Not Found”...
![Page 30: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/30.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 30
Criando Objeto XHR Exemplo: try
{ // Firefox, Opera 8.0+, Safari, etc... xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } }
![Page 31: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/31.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 31
Requisitando com XHR Exemplo:
function ajax(url, metodo, parametros) { xmlHttp.onreadystatechange = mudouEstado; xmlHttp.open(metodo,url,true); xmlHttp.setRequestHeader("Content-length", 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;}
}}
![Page 32: Introdução ao PHP Orientado a Objetos com Ajax](https://reader030.fdocuments.net/reader030/viewer/2022012312/55731d03d8b42aae7b8b49a5/html5/thumbnails/32.jpg)
Introdução ao PHP orientado a objetos com AJAX<Otávio Calaça Xavier> 32
FIM
Otávio Calaça [email protected]