SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
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
                               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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Propriedades do XHR
  onreadystatechange

 readyState
 responseText
 responseXML
 status
 statusText




             Introdução ao PHP orientado a objetos com AJAX
                                                              26
                         <Otávio Calaça Xavier>
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>
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>
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>
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>
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>
FIM


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




    Introdução ao PHP orientado a objetos com AJAX
                                                     32
                <Otávio Calaça Xavier>

Weitere ähnliche Inhalte

Was ist angesagt? (20)

Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVAProgramação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
 
05 poo-ii
05   poo-ii05   poo-ii
05 poo-ii
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 
PHP robusto com Zend Framework
PHP robusto com Zend FrameworkPHP robusto com Zend Framework
PHP robusto com Zend Framework
 
POO - 07 - Operadores do Java
POO - 07 - Operadores do  JavaPOO - 07 - Operadores do  Java
POO - 07 - Operadores do Java
 
Aula2
Aula2Aula2
Aula2
 
POO - 12 - A Classe Object
POO - 12 - A Classe ObjectPOO - 12 - A Classe Object
POO - 12 - A Classe Object
 
Reflections
ReflectionsReflections
Reflections
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
POO - 16 - Polimorfismo
POO - 16 - PolimorfismoPOO - 16 - Polimorfismo
POO - 16 - Polimorfismo
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
Refactoring
RefactoringRefactoring
Refactoring
 
JSP - Expression Language
JSP - Expression LanguageJSP - Expression Language
JSP - Expression Language
 
3- POO
3- POO3- POO
3- POO
 
Poo
PooPoo
Poo
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
Java 02
Java 02Java 02
Java 02
 
Aula5
Aula5Aula5
Aula5
 
POO - 14 - Vetores
POO - 14 - VetoresPOO - 14 - Vetores
POO - 14 - Vetores
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens Poo
 

Andere mochten auch

Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXOtávio Calaça Xavier
 
Padrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVCPadrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVCAlmir Neto
 
Fuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionFuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionOtávio Calaça Xavier
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesOtávio Calaça Xavier
 
Deep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeDeep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeOtávio Calaça Xavier
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaOtávio Calaça Xavier
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebOtávio Calaça Xavier
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebOtávio Calaça Xavier
 
Integrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPIntegrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPOtávio Calaça Xavier
 
Php5 Orientado A Objetos
Php5 Orientado A ObjetosPhp5 Orientado A Objetos
Php5 Orientado A ObjetosRápido Site
 
PHP Orientado a Objetos - 1a Parte
PHP Orientado a Objetos - 1a PartePHP Orientado a Objetos - 1a Parte
PHP Orientado a Objetos - 1a ParteJonata Weber
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaOtávio Calaça Xavier
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvcleopp
 

Andere mochten auch (20)

Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
 
Padrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVCPadrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVC
 
Fuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and InductionFuzzy RDF in the Semantic Web: Deduction and Induction
Fuzzy RDF in the Semantic Web: Deduction and Induction
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simples
 
Deep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizadeDeep learning: a ficção em IA tem se tornado realizade
Deep learning: a ficção em IA tem se tornado realizade
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega Continua
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da Web
 
Web Semântica, a terceira geração da Web
Web Semântica, a terceira geração da WebWeb Semântica, a terceira geração da Web
Web Semântica, a terceira geração da Web
 
Padrões de Projeto Web e o MVC
Padrões de Projeto Web e o MVCPadrões de Projeto Web e o MVC
Padrões de Projeto Web e o MVC
 
Integrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHPIntegrando a Web Social e a Web Semântica com PHP
Integrando a Web Social e a Web Semântica com PHP
 
Redes Neurais com PHP
Redes Neurais com PHPRedes Neurais com PHP
Redes Neurais com PHP
 
Aula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQLAula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQL
 
Php5 Orientado A Objetos
Php5 Orientado A ObjetosPhp5 Orientado A Objetos
Php5 Orientado A Objetos
 
PHP Orientado a Objetos - 1a Parte
PHP Orientado a Objetos - 1a PartePHP Orientado a Objetos - 1a Parte
PHP Orientado a Objetos - 1a Parte
 
Introdução ao Framework CakePHP
Introdução ao Framework CakePHPIntrodução ao Framework CakePHP
Introdução ao Framework CakePHP
 
DevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega ContínuaDevOps: princípios e práticas para a Entrega Contínua
DevOps: princípios e práticas para a Entrega Contínua
 
Introdução à Google Maps API
Introdução à Google Maps APIIntrodução à Google Maps API
Introdução à Google Maps API
 
Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 
PHP Orientado a Objetos
PHP Orientado a ObjetosPHP Orientado a Objetos
PHP Orientado a Objetos
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvc
 

Ähnlich wie PHP OO AJAX Intro

Php5 e a orientação a objetos
Php5 e a orientação a objetosPhp5 e a orientação a objetos
Php5 e a orientação a objetosxbacon
 
Minicurso de PHP Com Ajax
Minicurso de PHP Com AjaxMinicurso de PHP Com Ajax
Minicurso de PHP Com AjaxAdler Medrado
 
Javascript no SAPO e libsapojs
Javascript no SAPO e libsapojsJavascript no SAPO e libsapojs
Javascript no SAPO e libsapojscodebits
 
jQuery básico (parte 1)
jQuery básico (parte 1)jQuery básico (parte 1)
jQuery básico (parte 1)Luís Cobucci
 
PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX Sérgio Souza Costa
 
Apresentação sobre MVVMC
Apresentação sobre MVVMCApresentação sobre MVVMC
Apresentação sobre MVVMCAlisson Agiani
 
PHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkPHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkRafael Dohms
 
T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)Carlos Santos
 
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scopeCarlos Santos
 
Java Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsJava Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsEduardo Mendes
 
Aula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIAula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIinfo_cimol
 

Ähnlich wie PHP OO AJAX Intro (20)

Php5 e a orientação a objetos
Php5 e a orientação a objetosPhp5 e a orientação a objetos
Php5 e a orientação a objetos
 
Minicurso de PHP Com Ajax
Minicurso de PHP Com AjaxMinicurso de PHP Com Ajax
Minicurso de PHP Com Ajax
 
Javascript + jQuery
Javascript + jQueryJavascript + jQuery
Javascript + jQuery
 
Javascript no SAPO e libsapojs
Javascript no SAPO e libsapojsJavascript no SAPO e libsapojs
Javascript no SAPO e libsapojs
 
jQuery básico (parte 1)
jQuery básico (parte 1)jQuery básico (parte 1)
jQuery básico (parte 1)
 
Tw Dwr 2007 Ap01
Tw Dwr 2007 Ap01Tw Dwr 2007 Ap01
Tw Dwr 2007 Ap01
 
PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX PHP: Linguagem + Mysql + MVC + AJAX
PHP: Linguagem + Mysql + MVC + AJAX
 
OOP Java
OOP JavaOOP Java
OOP Java
 
Minicurso groovy grails
Minicurso groovy grailsMinicurso groovy grails
Minicurso groovy grails
 
Apresentação sobre MVVMC
Apresentação sobre MVVMCApresentação sobre MVVMC
Apresentação sobre MVVMC
 
PHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkPHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao Framework
 
T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)T11_LM3: Subalgoritmose colisões (2013-2014)
T11_LM3: Subalgoritmose colisões (2013-2014)
 
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
 
Wicket 2008
Wicket 2008Wicket 2008
Wicket 2008
 
Java Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e TaglibsJava Web 5 - JSP, Expression Language e Taglibs
Java Web 5 - JSP, Expression Language e Taglibs
 
Java Script
Java ScriptJava Script
Java Script
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
Java script1
Java script1Java script1
Java script1
 
Aula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIAula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites II
 
Javascript
JavascriptJavascript
Javascript
 

Mehr von Otávio Calaça Xavier

Internet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsInternet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsOtávio Calaça Xavier
 
Web Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLWeb Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLOtávio Calaça Xavier
 
Implementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social NetworksImplementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social NetworksOtávio Calaça Xavier
 
Lógica Fuzzy aplicada à Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à  Sistemas de Apoio a DecisãoLógica Fuzzy aplicada à  Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à Sistemas de Apoio a DecisãoOtávio Calaça Xavier
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineOtávio Calaça Xavier
 
Introdução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPIntrodução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPOtávio Calaça Xavier
 
Classe V: Educação à distância com Videoconferência no Moodle
Classe V: Educação à distância com Videoconferência no MoodleClasse V: Educação à distância com Videoconferência no Moodle
Classe V: Educação à distância com Videoconferência no MoodleOtávio Calaça Xavier
 

Mehr von Otávio Calaça Xavier (8)

Internet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.jsInternet das coisas (IoT) com Raspberry, Python e Node.js
Internet das coisas (IoT) com Raspberry, Python e Node.js
 
Web Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLWeb Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQL
 
Implementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social NetworksImplementing Semantic Queries in Online Social Networks
Implementing Semantic Queries in Online Social Networks
 
Lógica Fuzzy aplicada à Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à  Sistemas de Apoio a DecisãoLógica Fuzzy aplicada à  Sistemas de Apoio a Decisão
Lógica Fuzzy aplicada à Sistemas de Apoio a Decisão
 
Abstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP DoctrineAbstração do banco de dados com PHP Doctrine
Abstração do banco de dados com PHP Doctrine
 
PHP: Atualidade e Tendências
PHP: Atualidade e TendênciasPHP: Atualidade e Tendências
PHP: Atualidade e Tendências
 
Introdução às Redes Neurais com PHP
Introdução às Redes Neurais com PHPIntrodução às Redes Neurais com PHP
Introdução às Redes Neurais com PHP
 
Classe V: Educação à distância com Videoconferência no Moodle
Classe V: Educação à distância com Videoconferência no MoodleClasse V: Educação à distância com Videoconferência no Moodle
Classe V: Educação à distância com Videoconferência no Moodle
 

PHP OO AJAX Intro

  • 1. Introdução ao PHP orientado a objetos com AJAX Otávio Calaça Xavier otavio@javacerrado.org
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. FIM Otávio Calaça Xavier otavio@javacerrado.org Introdução ao PHP orientado a objetos com AJAX 32 <Otávio Calaça Xavier>