SlideShare uma empresa Scribd logo
1 de 50
Desenvolvendo aplicações PHP
com, AJAX e Y!UI Yahoo! User
          Interface

     Domingos Teruel
       Analista de Software
Experiência Profissional
•   Tecnólogo em Processamento de dados,
    especialista em Interfaces de sistemas;

•   Atua no desenvolvimento e implementação de
    sistemas web com software livre;

•   Desenvolvedor PHP desde 1999;

•   Analista de software de ITI em Lightcomm
    Tecnologia e Serviços

•   Consultor em tecnologias móvel (especialista
    em ambiente Blackberry)
Quem esta na Platéia?
Quem esta na Platéia?
Quem esta na Platéia?

• Fãs de Software Livre ?
Quem esta na Platéia?

• Fãs de Software Livre ?
• Estudantes ?
Quem esta na Platéia?

• Fãs de Software Livre ?
• Estudantes ?
• Desenvolvedores Avançado de PHP ?
Quem esta na Platéia?

•   Fãs de Software Livre ?
•   Estudantes ?
•   Desenvolvedores Avançado de PHP ?
•   Desenvolvedores de outras Linguagens ?
Quem esta na Platéia?

•   Fãs de Software Livre ?
•   Estudantes ?
•   Desenvolvedores Avançado de PHP ?
•   Desenvolvedores de outras Linguagens ?
•   Todas as opções acima !
Quem esta na Platéia?

•   Fãs de Software Livre ?
•   Estudantes ?
•   Desenvolvedores Avançado de PHP ?
•   Desenvolvedores de outras Linguagens ?
•   Todas as opções acima !
•   Nenhuma das outras opções !!
Linha da apresentação

•   Porque utilizar PHP no meu projeto
•   Utilizando Ajax com PHP
•   Porque YUI
•   Desenvolvimento de um Projeto
    – Camada de Apresentação com YUI
    – Camada de Negócios e Modelo
Porque usar PHP se existe o
    ASP, JSP, Python, .NET… ?

•   Excelente Custo/Benefício
•   Perfomance / Robustez / Escalabilidade
•   Curva de aprendizagem curta
•   Open Source / Software livre
•   Multi-plataformas
•   Interoperabilidade
•   Grande Comunidade ativa
Quem esta usando PHP
Por que de um Framework?
Segundo a Wikipedia, um Framework é:

"uma abstração onde um conjunto comum de
  código fornece funcionalidades genérica que
  podem ser seletivamente sobrepostas ou
  especializadas pelo utilizador do código
  fornecendo uma funcionalidade específica. "
Por que de um Framework?
• Simplificação
• Agilidade / Rapidez
• Padrões de desenvolvimento / Design
  Pattern
• Organização
• Menos código
• Conjunto de utilitários
Por quê AJAX?
• Ajax quer dizer: Asynchronous Javascript
  and XML

• Mas também pode ser:
  – Asynchronous Javascript and

  + XHTML
  + JSON
  + CSS
Por quê AJAX?
• O ciclo tradicional
Por quê AJAX?
• O ciclo AJAX
Por quê AJAX?
• O que muda para o usuário
  – Uso de AJAX substitui refresh de páginas por
    atualização(update) nas páginas.
  – Melhora a experiência do usuário com a interface
  – Possibilidade de melhorias na interação com o
    usuário: melhor usabilidade, melhor interatividade
    com quem usa
  – Utilização de efeitos visuais (limitado, mas suficiente)
  – Economia de banda (aplicação mais veloz)
  – Grande quantidade de frameworks Javascripts
    disponíveis no mercado
Quem esta usando AJAX com YUI
Outros frameworks JS
Por que YUI?
“A Biblioteca Yahoo User Interface (YUI) é uma coleção
  coerente de recursos Javascript e CSS que facilita a
       construção de aplicações web interativas em
   navegadores web. Algumas partes do YUI, como o
  Event Utility, opera sobre uma camada e esta lá para
  facilitar a programação croos-browser. Outras, como
     o Calendário, apresenta widgets que pode ser
  representados em sua página com um visual(design)
                         padrão.”

                                            YUI Team
Porque YUI
• Excelente documentação
• Grande número de desenvolvedores,
  ótimos Use cases
• Desenvolvimento continuo da aplicação
  pelo Yahoo e comunidade
• A Biblioteca YUI é livre, está sob a licença
  BSD que permite seu uso comercial e não
  comercial.
O que é preciso saber para
          desenvolver?
• Para desenvolver uma aplicação que utilize YUI
  é recomendado bom conhecimento de XHTML e
  CSS, noções de DOM e JAVASCRIPT

  – Quais ferramentas utilizar?
     • Navegador: Firefox
     • Add-ons:
        –   Firebug
        –   Html Validator
        –   Tamper data
        –   Web Developer
        –   YSlow
O que é preciso saber para
          desenvolver?
• Utilizar uma ferramenta de Controle de
  Versão
O que é preciso saber para
          desenvolver?
• Definição das pastas do projeto
• Baixar a última versão do YUI e das
  outras ferramentas que utilizará no projeto
  (smarty, nusoap e etc)
Arquitetura Aplicação Web
Arquitetura Aplicação Web
Camada de Apresentação
• Definição do Mockup
  – Uso de templates engine (SMARTY) para
    gerenciar a saída XHTML
  – Definição do container de navegação
  – Web Standards
Como preparar sua aplicação para
            o YUI
• Definir o escopo do recurso a ser utilizado
  na interface
• Loader
     • Dificuldade em trabalhar com aplicações
       complexas que utilizam componente DataTable
• Event
     • Fácil implementar com componente DataTable
Camada de Negócios

• Programação Orientada a Objeto
• Utilizar conceito Container
• Devo utilizar um framework como Zend
  Framework, CakePHP, etc?
Desenvolvimento da aplicação

• Bootstrap
  – Disponibiliza os recursos do sistema
  – Carrega as definições iniciais da aplicação


• Container
  – Faz check de segurança
  – Checa Identificação do Usuário
  – Gerencia requisições e permissões de usuário
Internacionalização com YUI
• YUI não contempla de um componente
  para internacionalização
• Como fazer?
  – Utilize seu componente PHP de i18n
    • Zend_translate
    • Smarty Translate
    • Solução caseira
       – Navegador defini idioma padrão, arquivo de idioma
       – Componente que traduz para JavaScript
YUI e carga de dados
YUI e carga de dados
• Componente DataSource
  – Tipo de dados
    •   HTML TABLE
    •   TEXT
    •   JSON
    •   JSARRAY
    •   XML
YUI e carga de dados
• Componente DataSource
  – Tipo de dados
    •   HTML TABLE
    •   TEXT
    •   JSON
    •   JSARRAY
    •   XML


   Siga o padrão de cada tipo de dado !
YUI e carga de dados
• Componente DataSource
  – Tipo de dados
    •   HTML TABLE
    •   TEXT
    •   JSON
    •   JSARRAY
    •   XML


   Siga o padrão de cada tipo de dado !
YUI e carga de dados
• Definição de campos
  – Tipo de Campos




• Meta Campos
• Lista de Resultados
Saída de Dados
Saída de Dados
Saída de Dados
Saída de Dados
Para aonde caminha YUI
• YUI 3.X
  – Mais Leves (menos K-weight sobre o core da página para a
    maioria dos usos)
  – Mais rápido (com menos requisições http, menos escrita de
    código e compilação, um código mais eficiente)
  – Mais consistente (nomenclatura comum, assinaturas de
    eventos, widget e toda a APIs da biblioteca)
  – mais potentes (fazer mais com menos implementação código)
  – mais segurança (mais seguro e fácil de expor a vários
    desenvolvedores trabalhando no mesmo ambiente, maior
    facilidade de correr em sistemas como Caja ou ADsafe)

• Não Compativel com YUI 2.X
  – Migração Paralela
Caso de Uso
Caso de Uso
Caso de Uso
Caso de Uso
Agradecimentos
• LigthComm Tecnologia
• PHP-MG
• Yahoo – YUI Team
Dúvidas e perguntas
Obrigado!!!
• http://twitter.com/mingomax
• http://blog.dteruel.com.br
• http://meadiciona.com/mingomax




                                   37

Mais conteúdo relacionado

Mais procurados

Apresentação sobre Drupal
Apresentação sobre DrupalApresentação sobre Drupal
Apresentação sobre DrupalWebdrop
 
Java e Mercado de Trabalho
Java e Mercado de TrabalhoJava e Mercado de Trabalho
Java e Mercado de TrabalhoEduardo Carvalho
 
Gerenciando Projetos Com Ruby On Rails
Gerenciando Projetos Com Ruby On RailsGerenciando Projetos Com Ruby On Rails
Gerenciando Projetos Com Ruby On RailsRodrigo Urubatan
 
Javascript levado a sério
Javascript levado a sérioJavascript levado a sério
Javascript levado a sériosaspi2
 

Mais procurados (6)

Apresentação sobre Drupal
Apresentação sobre DrupalApresentação sobre Drupal
Apresentação sobre Drupal
 
Wordpress
WordpressWordpress
Wordpress
 
Java e Mercado de Trabalho
Java e Mercado de TrabalhoJava e Mercado de Trabalho
Java e Mercado de Trabalho
 
Desenvolvimento Web
Desenvolvimento WebDesenvolvimento Web
Desenvolvimento Web
 
Gerenciando Projetos Com Ruby On Rails
Gerenciando Projetos Com Ruby On RailsGerenciando Projetos Com Ruby On Rails
Gerenciando Projetos Com Ruby On Rails
 
Javascript levado a sério
Javascript levado a sérioJavascript levado a sério
Javascript levado a sério
 

Semelhante a Desenvovelndo Aplicações com PHP, AJAX e Y!UI Yahoo User Interface

Desenvolvendo aplicações PHP, AJAX e YUI! Yahoo User Interface
Desenvolvendo aplicações PHP, AJAX e YUI! Yahoo User InterfaceDesenvolvendo aplicações PHP, AJAX e YUI! Yahoo User Interface
Desenvolvendo aplicações PHP, AJAX e YUI! Yahoo User InterfaceDomingos Teruel
 
Desenvolvendo Aplicações com PHP, AJAX e YUI!
Desenvolvendo Aplicações com PHP, AJAX e YUI!Desenvolvendo Aplicações com PHP, AJAX e YUI!
Desenvolvendo Aplicações com PHP, AJAX e YUI!Manuel Lemos
 
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User InterfaceDesenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User InterfaceDomingos Teruel
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...tdc-globalcode
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetMarcos Petry
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel PetryTchelinux
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 
Seminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaSeminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaDiego Cavalca
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013javamanrj
 
Sapo Sessions - Web Mobile
Sapo Sessions - Web MobileSapo Sessions - Web Mobile
Sapo Sessions - Web MobileBruno Carreira
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendThiago Sinésio
 
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Renato Groff
 
RIA e Flex - Dando formas à Inovação
RIA e Flex - Dando formas à InovaçãoRIA e Flex - Dando formas à Inovação
RIA e Flex - Dando formas à InovaçãoLeonardo Braga
 

Semelhante a Desenvovelndo Aplicações com PHP, AJAX e Y!UI Yahoo User Interface (20)

Desenvolvendo aplicações PHP, AJAX e YUI! Yahoo User Interface
Desenvolvendo aplicações PHP, AJAX e YUI! Yahoo User InterfaceDesenvolvendo aplicações PHP, AJAX e YUI! Yahoo User Interface
Desenvolvendo aplicações PHP, AJAX e YUI! Yahoo User Interface
 
Desenvolvendo Aplicações com PHP, AJAX e YUI!
Desenvolvendo Aplicações com PHP, AJAX e YUI!Desenvolvendo Aplicações com PHP, AJAX e YUI!
Desenvolvendo Aplicações com PHP, AJAX e YUI!
 
Web Tools Pt Br
Web Tools Pt BrWeb Tools Pt Br
Web Tools Pt Br
 
Conhecendo o Django
Conhecendo o DjangoConhecendo o Django
Conhecendo o Django
 
Web tools pt-br
Web tools pt-brWeb tools pt-br
Web tools pt-br
 
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User InterfaceDesenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
Desenvolvimento de Aplicações com Zend Framework e Yahoo! User Interface
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internet
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Curso HTML 5 - Aula Inicial
Curso HTML 5 - Aula InicialCurso HTML 5 - Aula Inicial
Curso HTML 5 - Aula Inicial
 
Seminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec CafelândiaSeminário de Desenvolvimento Mobile - Etec Cafelândia
Seminário de Desenvolvimento Mobile - Etec Cafelândia
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
 
A Linguagem Php
A Linguagem PhpA Linguagem Php
A Linguagem Php
 
Sapo Sessions - Web Mobile
Sapo Sessions - Web MobileSapo Sessions - Web Mobile
Sapo Sessions - Web Mobile
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
 
RIA e Flex - Dando formas à Inovação
RIA e Flex - Dando formas à InovaçãoRIA e Flex - Dando formas à Inovação
RIA e Flex - Dando formas à Inovação
 

Mais de Domingos Teruel

Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
 Lições aprendidas com a Re (escrita |design) de uma aplicação PHP  Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
Lições aprendidas com a Re (escrita |design) de uma aplicação PHP Domingos Teruel
 
Por dentro do Projeto openSUSE
Por dentro do Projeto openSUSEPor dentro do Projeto openSUSE
Por dentro do Projeto openSUSEDomingos Teruel
 
Vamos falar de Clean Code, Refatoração e TDD
Vamos falar de Clean Code, Refatoração e TDDVamos falar de Clean Code, Refatoração e TDD
Vamos falar de Clean Code, Refatoração e TDDDomingos Teruel
 
Zend Framework 2 - O que esperar da nova versão
Zend Framework 2 - O que esperar da nova versãoZend Framework 2 - O que esperar da nova versão
Zend Framework 2 - O que esperar da nova versãoDomingos Teruel
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitDomingos Teruel
 
Taxonomias e Tipos de Conteúdos com WordPress 3
Taxonomias e Tipos de Conteúdos com WordPress 3Taxonomias e Tipos de Conteúdos com WordPress 3
Taxonomias e Tipos de Conteúdos com WordPress 3Domingos Teruel
 
Desmistificando o Framework da Zend
Desmistificando o Framework da ZendDesmistificando o Framework da Zend
Desmistificando o Framework da ZendDomingos Teruel
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDomingos Teruel
 
Desenvolvendo Aplicativos com Zend Framework e banco de dados CDS/ISIS
Desenvolvendo Aplicativos com  Zend Framework  e banco de dados CDS/ISISDesenvolvendo Aplicativos com  Zend Framework  e banco de dados CDS/ISIS
Desenvolvendo Aplicativos com Zend Framework e banco de dados CDS/ISISDomingos Teruel
 

Mais de Domingos Teruel (9)

Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
 Lições aprendidas com a Re (escrita |design) de uma aplicação PHP  Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
 
Por dentro do Projeto openSUSE
Por dentro do Projeto openSUSEPor dentro do Projeto openSUSE
Por dentro do Projeto openSUSE
 
Vamos falar de Clean Code, Refatoração e TDD
Vamos falar de Clean Code, Refatoração e TDDVamos falar de Clean Code, Refatoração e TDD
Vamos falar de Clean Code, Refatoração e TDD
 
Zend Framework 2 - O que esperar da nova versão
Zend Framework 2 - O que esperar da nova versãoZend Framework 2 - O que esperar da nova versão
Zend Framework 2 - O que esperar da nova versão
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
Taxonomias e Tipos de Conteúdos com WordPress 3
Taxonomias e Tipos de Conteúdos com WordPress 3Taxonomias e Tipos de Conteúdos com WordPress 3
Taxonomias e Tipos de Conteúdos com WordPress 3
 
Desmistificando o Framework da Zend
Desmistificando o Framework da ZendDesmistificando o Framework da Zend
Desmistificando o Framework da Zend
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend Framework
 
Desenvolvendo Aplicativos com Zend Framework e banco de dados CDS/ISIS
Desenvolvendo Aplicativos com  Zend Framework  e banco de dados CDS/ISISDesenvolvendo Aplicativos com  Zend Framework  e banco de dados CDS/ISIS
Desenvolvendo Aplicativos com Zend Framework e banco de dados CDS/ISIS
 

Desenvovelndo Aplicações com PHP, AJAX e Y!UI Yahoo User Interface

  • 1. Desenvolvendo aplicações PHP com, AJAX e Y!UI Yahoo! User Interface Domingos Teruel Analista de Software
  • 2. Experiência Profissional • Tecnólogo em Processamento de dados, especialista em Interfaces de sistemas; • Atua no desenvolvimento e implementação de sistemas web com software livre; • Desenvolvedor PHP desde 1999; • Analista de software de ITI em Lightcomm Tecnologia e Serviços • Consultor em tecnologias móvel (especialista em ambiente Blackberry)
  • 3. Quem esta na Platéia?
  • 4. Quem esta na Platéia?
  • 5. Quem esta na Platéia? • Fãs de Software Livre ?
  • 6. Quem esta na Platéia? • Fãs de Software Livre ? • Estudantes ?
  • 7. Quem esta na Platéia? • Fãs de Software Livre ? • Estudantes ? • Desenvolvedores Avançado de PHP ?
  • 8. Quem esta na Platéia? • Fãs de Software Livre ? • Estudantes ? • Desenvolvedores Avançado de PHP ? • Desenvolvedores de outras Linguagens ?
  • 9. Quem esta na Platéia? • Fãs de Software Livre ? • Estudantes ? • Desenvolvedores Avançado de PHP ? • Desenvolvedores de outras Linguagens ? • Todas as opções acima !
  • 10. Quem esta na Platéia? • Fãs de Software Livre ? • Estudantes ? • Desenvolvedores Avançado de PHP ? • Desenvolvedores de outras Linguagens ? • Todas as opções acima ! • Nenhuma das outras opções !!
  • 11. Linha da apresentação • Porque utilizar PHP no meu projeto • Utilizando Ajax com PHP • Porque YUI • Desenvolvimento de um Projeto – Camada de Apresentação com YUI – Camada de Negócios e Modelo
  • 12. Porque usar PHP se existe o ASP, JSP, Python, .NET… ? • Excelente Custo/Benefício • Perfomance / Robustez / Escalabilidade • Curva de aprendizagem curta • Open Source / Software livre • Multi-plataformas • Interoperabilidade • Grande Comunidade ativa
  • 14. Por que de um Framework? Segundo a Wikipedia, um Framework é: "uma abstração onde um conjunto comum de código fornece funcionalidades genérica que podem ser seletivamente sobrepostas ou especializadas pelo utilizador do código fornecendo uma funcionalidade específica. "
  • 15. Por que de um Framework? • Simplificação • Agilidade / Rapidez • Padrões de desenvolvimento / Design Pattern • Organização • Menos código • Conjunto de utilitários
  • 16. Por quê AJAX? • Ajax quer dizer: Asynchronous Javascript and XML • Mas também pode ser: – Asynchronous Javascript and + XHTML + JSON + CSS
  • 17. Por quê AJAX? • O ciclo tradicional
  • 18. Por quê AJAX? • O ciclo AJAX
  • 19. Por quê AJAX? • O que muda para o usuário – Uso de AJAX substitui refresh de páginas por atualização(update) nas páginas. – Melhora a experiência do usuário com a interface – Possibilidade de melhorias na interação com o usuário: melhor usabilidade, melhor interatividade com quem usa – Utilização de efeitos visuais (limitado, mas suficiente) – Economia de banda (aplicação mais veloz) – Grande quantidade de frameworks Javascripts disponíveis no mercado
  • 20. Quem esta usando AJAX com YUI
  • 22. Por que YUI? “A Biblioteca Yahoo User Interface (YUI) é uma coleção coerente de recursos Javascript e CSS que facilita a construção de aplicações web interativas em navegadores web. Algumas partes do YUI, como o Event Utility, opera sobre uma camada e esta lá para facilitar a programação croos-browser. Outras, como o Calendário, apresenta widgets que pode ser representados em sua página com um visual(design) padrão.” YUI Team
  • 23. Porque YUI • Excelente documentação • Grande número de desenvolvedores, ótimos Use cases • Desenvolvimento continuo da aplicação pelo Yahoo e comunidade • A Biblioteca YUI é livre, está sob a licença BSD que permite seu uso comercial e não comercial.
  • 24. O que é preciso saber para desenvolver? • Para desenvolver uma aplicação que utilize YUI é recomendado bom conhecimento de XHTML e CSS, noções de DOM e JAVASCRIPT – Quais ferramentas utilizar? • Navegador: Firefox • Add-ons: – Firebug – Html Validator – Tamper data – Web Developer – YSlow
  • 25. O que é preciso saber para desenvolver? • Utilizar uma ferramenta de Controle de Versão
  • 26. O que é preciso saber para desenvolver? • Definição das pastas do projeto • Baixar a última versão do YUI e das outras ferramentas que utilizará no projeto (smarty, nusoap e etc)
  • 29. Camada de Apresentação • Definição do Mockup – Uso de templates engine (SMARTY) para gerenciar a saída XHTML – Definição do container de navegação – Web Standards
  • 30. Como preparar sua aplicação para o YUI • Definir o escopo do recurso a ser utilizado na interface • Loader • Dificuldade em trabalhar com aplicações complexas que utilizam componente DataTable • Event • Fácil implementar com componente DataTable
  • 31. Camada de Negócios • Programação Orientada a Objeto • Utilizar conceito Container • Devo utilizar um framework como Zend Framework, CakePHP, etc?
  • 32. Desenvolvimento da aplicação • Bootstrap – Disponibiliza os recursos do sistema – Carrega as definições iniciais da aplicação • Container – Faz check de segurança – Checa Identificação do Usuário – Gerencia requisições e permissões de usuário
  • 33. Internacionalização com YUI • YUI não contempla de um componente para internacionalização • Como fazer? – Utilize seu componente PHP de i18n • Zend_translate • Smarty Translate • Solução caseira – Navegador defini idioma padrão, arquivo de idioma – Componente que traduz para JavaScript
  • 34. YUI e carga de dados
  • 35. YUI e carga de dados • Componente DataSource – Tipo de dados • HTML TABLE • TEXT • JSON • JSARRAY • XML
  • 36. YUI e carga de dados • Componente DataSource – Tipo de dados • HTML TABLE • TEXT • JSON • JSARRAY • XML Siga o padrão de cada tipo de dado !
  • 37. YUI e carga de dados • Componente DataSource – Tipo de dados • HTML TABLE • TEXT • JSON • JSARRAY • XML Siga o padrão de cada tipo de dado !
  • 38. YUI e carga de dados • Definição de campos – Tipo de Campos • Meta Campos • Lista de Resultados
  • 43. Para aonde caminha YUI • YUI 3.X – Mais Leves (menos K-weight sobre o core da página para a maioria dos usos) – Mais rápido (com menos requisições http, menos escrita de código e compilação, um código mais eficiente) – Mais consistente (nomenclatura comum, assinaturas de eventos, widget e toda a APIs da biblioteca) – mais potentes (fazer mais com menos implementação código) – mais segurança (mais seguro e fácil de expor a vários desenvolvedores trabalhando no mesmo ambiente, maior facilidade de correr em sistemas como Caja ou ADsafe) • Não Compativel com YUI 2.X – Migração Paralela
  • 48. Agradecimentos • LigthComm Tecnologia • PHP-MG • Yahoo – YUI Team