Professional Documents
Culture Documents
orientado a objetos
com AJAX
Otvio Calaa Xavier
otavio@javacerrado.org
Orientao a Objetos
Classe
Objetos
Mtodos
Atributos
Visibilidade
Construtores
Abstrao
Interface
Herana
Encapsulamento
Polimorfismo
Destrutores
Introduo ao PHP orientado a objetos com AJAX
<Otvio Calaa Xavier>
Classe
Representao abstrata de objetos com
caractersticas afins.
Define e Descreve as aes providas pelos
seus objetos, bem como as informaes
que esses podem conter.
Ex: Veculo
class Veiculo {
Em PHP:
// atributos
// mtodos
}
Introduo ao PHP orientado a objetos com AJAX
<Otvio Calaa Xavier>
Abstrao
Objetos
Instancia de uma classe
Implementao de uma classe que prove
as aes (mtodos) e informaes
(atributos) que esta classe define e
descreve.
Ex: Corsa
Em PHP: $corsa = new Veiculo();
Atributos
Caractersticas ou informaes dos objetos
Ex: cor, ano, modelo, marca.
Em PHP:
class Veiculo {
public $cor;
public $modelo;
// mtodos
}
$corsa = new Veiculo();
$corsa->cor = Branco;
$corsa->modelo = Sedan;
Introduo ao PHP orientado a objetos com AJAX
<Otvio Calaa Xavier>
Mtodos
Aes de um objeto definidas na classe
que o abstrai.
Ex: darPartida(), acelerar(), frear().
Em PHP:
class Veiculo {
// atributos
public function acelerar() {
//algortimo para acelerar
}
}
$corsa = new Veiculo();
$corsa->acelerar();
Introduo ao PHP orientado a objetos com AJAX
<Otvio Calaa Xavier>
Mtodo Construtor
Ao realizada no momento em que
criada uma nova instancia (objeto) de uma
classe.
class Veiculo {
Em PHP:
__construct($nome) {
Mtodo Destrutor
Mtodo que ser chamado assim que
todas as referncias a um objeto particular
forem removidas ou quando o objeto for
explicitamente destrudo.
class Veiculo {
Em PHP:
private $nome;
function __construct($nome) {
$this->nome = $nome;
echo "Criando veiculo ".$this->nome."\n";
}
function __destruct() {
echo "Destruindo veiculo ".$this->nome."\n";
}
10
}
echo Veiculo::$quantidade;
Saida: 1
$corsa = new Veiculo();
echo $corsa->quantidade;
Saida: Erro!
Introduo ao PHP orientado a objetos com AJAX
<Otvio Calaa Xavier>
11
Herana
Mecanismo pelo qual uma classe (subclasse) pode estender uma outra classe
(super-classe) visando menos repetio de
codigo.
Ex: classe Moto estende classe Veculo.
Em PHP: class Moto extends Veiculo {
//metodos e atributos da classe Moto.
}
$cgTitan = new Moto();
=> $cgTitan contem todos os mtodos e atributos dos veculos
Introduo ao PHP orientado a objetos com AJAX
<Otvio Calaa Xavier>
12
Visibilidade
Modificadores de acesso.
Public => pode ser acessado em todo o
escopo do programa
Protected => acessvel apenas na classe
em que foi declarado e em suas filhas
(sub-classes)
Private => acessvel apenas na classe
onde foi declarado.
13
Encapsulamento
Separao dos aspectos internos e
externos dos objetos.
Atributos
s podem ser acessados
indiretamente atravs de mtodos.
Em PHP: class Veiculo {
private $nome;
14
Polimorfismo
Veiculo
acelerar()
Carro
acelerar()
Submarino
acelerar()
Avio
acelerar()
15
Interfaces
Classe Avio estende a classe Veiculo
Classe Urubu estende a classe Animal
Veiculo
Carro
Submarino
Animal
Avio
Lobo
Baleia
Urubu
16
Interfaces(II)
Voadores
Veiculo
Carro
Submarino
Animal
Avio
Lobo
Baleia
Urubu
17
AJAX
18
AJAX
Sem AJAX
Navegador
Pag. WEB
Pag. WEB
Pag. WEB
Pag. WEB
Servidor da
Aplicao
WEB
Com AJAX
Navegador
Pgina
da WEB
Servidor da
Aplicao
WEB
Pag. WEB
Pag. WEB
19
O Objeto XMLHttpRequest
Faz uma requisio assncrona para o
servidor da aplicao.
Pode atualizar o contedo da pagina sem
que esta seja recarregada.
Ainda
no uma recomendao
padronizada pela W3C e sim um esboo
ou Working Draft.
20
Outros navegadores:
xmlHttp = new XMLHttpRequest();
21
Mtodos do XHR
abort();
getAllResponseHeaders() ;
getResponseHeader("headername");
open("metodo","URL",async,"usuario",senha");
send(content);
setRequestHeader("label","value");
22
open()
23
send() e abort()
send();
Envia a requisio.
Passa os parmetros (POST).
abort();
Cancela a requisio.
24
Mtodos de Cabealho
getResponseHeader("headername");
Pega um parmetro do cabealho de resposta.
getAllResponseHeaders();
Pega todos os parmetros do cabealho de
resposta em forma de string.
setRequestHeader("label","value");
Seta um parmetro do cabealho de envio.
Introduo ao PHP orientado a objetos com AJAX
<Otvio Calaa Xavier>
25
Propriedades do XHR
onreadystatechange
readyState
responseText
responseXML
status
statusText
26
Propriedades do XHR
onreadystatechange
Handler de um evento chamado em cada mudana de estado.
readyState
Estado atual do objeto. Pode ser:
0 = uninitialized
1 = loading
2 = loaded
3 = interactive
4 = complete
27
Propriedades do XHR
responseText
Resposta da requisio em formato texto ( string ).
responseXML
Resposta da requisio em formato de XML (XML
document object).
28
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...
29
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");
}
}
Introduo ao PHP orientado a objetos com AJAX
<Otvio Calaa Xavier>
30
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;
}
}
}
Introduo ao PHP orientado a objetos com AJAX
<Otvio Calaa Xavier>
31
FIM
Otvio Calaa Xavier
otavio@javacerrado.org
32