Baixe Ajax e PHP e outras Notas de estudo em PDF para Informática, somente na Docsity! Introdução ao PHP orientado a objetos com AJAX Otávio Calaça Xavier otavio@javacerrado.org 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ção Interface Herança Encapsulamento Polimorfismo Destrutores 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(); 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”; 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 { // atributos public function acelerar() { //algorítimo para acelerar } } $corsa = new Veiculo(); $corsa->acelerar(); 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. 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! 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 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. Veiculo acelerar() Carro acelerar() Submarino acelerar() Avião acelerar() Abstrato 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 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: 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. 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"); ou xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlHttp = new XMLHttpRequest(); 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"); 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. Introdução ao PHP orientado a objetos com AJAX <Otávio Calaça Xavier> 26 Propriedades do XHR onreadystatechange readyState responseText responseXML status statusText 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 = uninitialized 1 = loading 2 = loaded 3 = interactive 4 = complete 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"); } } 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; } } } Introdução ao PHP orientado a objetos com AJAX <Otávio Calaça Xavier> 32 FIM Otávio Calaça Xavier otavio@javacerrado.org