SlideShare uma empresa Scribd logo
PHP e componentes reutilizáveis
                Victor Requião
         (victorrequiao@gmail.com)
PHP e componentes reutilizáveis




                                  Como seguiremos...

        • PHP
        • Componentes e reuso de software
        • PEAR
        • PHP Classes
        • Zend Framework
        • Xajax
        • Smarty
        • Referências




 Victor Requião
                                                       2
PHP e componentes reutilizáveis




                                      PHP

  PHP (PHP: Hypertext Preprocessor) é uma linguagem open-souce e
  interpretada, originalmente projetada como uma maneira alto-nível de fornecer
  dinamicidade para a Web (apesar de existir a versão PHP-GTK para ambiente
  desktop).

  Tendo sido escrita inicialmente como um conjunto de binários CGI em C, PHP
  incorpora elementos de outras linguagens como Perl, C++ e Java.

  Apartir da sua versão 5 (atual 5.2.1) se destacou ainda mais no cenário Web,
  tendo em vista que foram adicionadas grandes melhorias no que diz respeito à
  POO (Programação Orientada a Objetos). Chegando atualmente, segundo a
  Zend Technologies, mais de 40% das aplicacões Web estarem rodando PHP.




 Victor Requião
                                                                               3
PHP e componentes reutilizáveis




            Componentes e reuso de software

  Para a obtenção de produtos de software com alta qualidade e que sejam
  economicamente viáveis, faz-se extremamente necessário a adoção de um
  conjunto sistemático de processos, técnicas e ferramentas.

  Reutilizando partes bem especificadas, desenvolvidas e testadas, pode-se
  construir software em menor tempo e com maior confiabilidade.

  O Desenvolvimento Baseado em Componentes (DBC) surgiu como uma nova
  perspectiva para o desenvolvimento de software, cujo objetivo é a fragmentação
  de blocos monolíticos em componentes que interagem entre si.

  Reduzindo, desta forma, a complexidade do desenvolvimento de sistemas, assim
  como os seus custos, através da utilização de componentes que, em princípio,
  seriam adequados para serem utilizados em outras aplicações.



 Victor Requião
                                                                             4
PHP e componentes reutilizáveis




                                     PEAR

     O PEAR (PHP Extension and Application Repository) é um framework e sistema
     de distribuição para componentes PHP.

     Os principais objetivos do PEAR são:

     • Ser um repositório open-source de componentes orientados à objeto
     reutilizáveis em PHP;
     • Promover um sistema para distribuição de código e manutenção de pacotes;
     • Estabelecer uma padrão para a codificação de componentes em PHP;
     • Firmar um contato com a comunidade PHP/PEAR através de website, listas de
     discussão e mirros para download.




 Victor Requião
                                                                            5
PHP e componentes reutilizáveis




                                  PEAR

  Dentre uma grande variedade de pacotes de componentes do PEAR, alguns se
  destacam no desenvolvimento efetivo de aplicações Web:

  • Caching
  • Banco de dados
  • Encriptação
  • Eventos
  • Logging
  • Mail
  • Validação
  • Web Services
  • XML




 Victor Requião
                                                                        6
PHP e componentes reutilizáveis




                                  Zend Framework

  O Zend Framework é um esforço da Zend Technologies em produzir um
  framework open-source para o desenvolvimento de aplicações robustas em
  PHP.

  Existem como metas:

  • Promover um repositório de componentes que sejam ativamente suportados
  • Oferecer um sistema completo de desenvolvimento para aplicações Web
  • Fazer uso de táticas avançadas quanto à programação em PHP
  • Contribuir com o PHP Collaboration Project
  (http://www.zend.com/php_collaboration_project), iniciativa open-source entre a
  Zend Technologies e a comunidade quanto ao desenvolvimento de projetos
  avançados em PHP 5.




 Victor Requião
                                                                               7
PHP e componentes reutilizáveis




                                  Zend Framework

  Pacotes de componentes presentes na versão 0.9.2:

  • Autenticação e autorização (Zend_Acl, Zend_Authentication e Zend_Session)
  • Infraestutura interna (Zend_Cache, Zend_Debug, etc)
  • Documentação
  • Internacionalização (Zend_Date, Zend_Translate)
  • E-mail, formatos e busca (Zend_Json, Zend_Mail, Zend_Search_Lucene, etc)
  • Model-View-Controller
  • Web e Web Services




 Victor Requião
                                                                            8
PHP e componentes reutilizáveis




                                  PHP Classes

   Repositório de classes open-source desenvolvidas em PHP, mantido por uma
   comunidade de usuários de diversos países.

   O PHP Classes possue uma certa vantagem e desvantagem quanto ao PEAR:

   Vantagem:

   • Maior opção de componentes não existentes no PEAR, como por exemplo,
   aqueles relacionados à Programação Orientada à Aspectos (AOP).

   Desvantagem:

   • Falta de garantia com relação à qualidade dos componentes e nem sempre há
   uma compatibilidade entre eles.



 Victor Requião
                                                                            9
PHP e componentes reutilizáveis




                                         PHP e Ajax




                     Ajax e a troca de informações de forma “silenciosa” com o servidor.


 Victor Requião
                                                                                           10
PHP e componentes reutilizáveis




                                  PHP e Ajax

  Dentro dos inúmeros componentes Ajax existentes para PHP, um dos mais
  fáceis e poderosos é o Xajax.

  Permitindo uma camada de alto nível, onde aplicações simples ou mais robustas
  possam rodar sem a necessidade de sobrecarregar o servidor com requisições
  desnecessárias.

  Xajax permite que seja feito um mapeamento de funções ou métodos de objetos
  PHP em funções JavaScript, fazendo com que a aplicação as enxergue como se
  estivessem localmente no lado do cliente.




 Victor Requião
                                                                           11
PHP e componentes reutilizáveis




                                              Smarty




                  Arquitetura MVC e a comunicação entre componentes de negócio e apresentação.


 Victor Requião
                                                                                                 12
PHP e componentes reutilizáveis




                                  Smarty

  Smarty é um sistema de templates em PHP, responsável por separar a camada
  de negócio da camada de apresentação através de arquitetura MVC (Model
  View Controller).

  Para isso é utilizado um sistema de tags que garante que a lógica de
  apresentação possa ser manipulada por qualquer pessoa, sem que esta tenha
  conhecimentos sobre o negócio da aplicação.

  Desta maneira, evitam-se riscos acidentais que tendem a comprometer a
  qualidade do processo de desenvolvimento de software.




 Victor Requião
                                                                          13
PHP e componentes reutilizáveis




                                  Referências
  PHP
       • http://www.php.net

  Zend Framework
       • http://framework.zend.com
  PEAR
       • http://pear.php.net
  Xajax
       • http://www.xajaxproject.org
  Smarty
       • http://smarty.php.net


 Victor Requião
                                                14
Obrigado!
       Victor Requião
(victorrequiao@gmail.com)




                            15

Mais conteúdo relacionado

Mais procurados

Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
Jackson Veroneze
 
Infección en BIOS, UEFI y derivados
Infección en BIOS, UEFI y derivadosInfección en BIOS, UEFI y derivados
Infección en BIOS, UEFI y derivados
David Barroso
 
Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0
Emertxe Information Technologies Pvt Ltd
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processos
Talles Nascimento Rodrigues
 
Teste de software - Conhecendo e Aplicando
Teste de software - Conhecendo e AplicandoTeste de software - Conhecendo e Aplicando
Teste de software - Conhecendo e Aplicando
André Phillip Bertoletti
 
Linux Porting to a Custom Board
Linux Porting to a Custom BoardLinux Porting to a Custom Board
Linux Porting to a Custom Board
Patrick Bellasi
 
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Cloves da Rocha
 
Yocto usage for Graphics SDK on AM335x
Yocto usage for Graphics SDK on AM335xYocto usage for Graphics SDK on AM335x
Yocto usage for Graphics SDK on AM335x
Prabindh Sundareson
 
LAS16-200: SCMI - System Management and Control Interface
LAS16-200:  SCMI - System Management and Control InterfaceLAS16-200:  SCMI - System Management and Control Interface
LAS16-200: SCMI - System Management and Control Interface
Linaro
 
Boot process: BIOS vs UEFI
Boot process: BIOS vs UEFIBoot process: BIOS vs UEFI
Boot process: BIOS vs UEFI
Alea Soluciones, S.L.
 
Instalacao ubuntu
Instalacao ubuntuInstalacao ubuntu
Instalacao ubuntu
Pepe Rocker
 
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
Mayara Fernandes
 
Introduction to Embedded Linux
Introduction to Embedded LinuxIntroduction to Embedded Linux
Introduction to Embedded Linux
Hossain Reja
 
Honeywell Experion HS
Honeywell Experion HSHoneywell Experion HS
Honeywell Experion HS
Shivam Singh
 
RTOS - Real Time Operating Systems
RTOS - Real Time Operating SystemsRTOS - Real Time Operating Systems
RTOS - Real Time Operating Systems
Emertxe Information Technologies Pvt Ltd
 
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Leinylson Fontinele
 
Redes Industriais
Redes IndustriaisRedes Industriais
Redes Industriais
Jim Naturesa
 
Android Booting Sequence
Android Booting SequenceAndroid Booting Sequence
Android Booting Sequence
Jayanta Ghoshal
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
elliando dias
 
Processors selection
Processors selectionProcessors selection
Processors selection
Pradeep Shankhwar
 

Mais procurados (20)

Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Infección en BIOS, UEFI y derivados
Infección en BIOS, UEFI y derivadosInfección en BIOS, UEFI y derivados
Infección en BIOS, UEFI y derivados
 
Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0
 
Sistemas operacionais escalonamento de processos
Sistemas operacionais  escalonamento de processosSistemas operacionais  escalonamento de processos
Sistemas operacionais escalonamento de processos
 
Teste de software - Conhecendo e Aplicando
Teste de software - Conhecendo e AplicandoTeste de software - Conhecendo e Aplicando
Teste de software - Conhecendo e Aplicando
 
Linux Porting to a Custom Board
Linux Porting to a Custom BoardLinux Porting to a Custom Board
Linux Porting to a Custom Board
 
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
 
Yocto usage for Graphics SDK on AM335x
Yocto usage for Graphics SDK on AM335xYocto usage for Graphics SDK on AM335x
Yocto usage for Graphics SDK on AM335x
 
LAS16-200: SCMI - System Management and Control Interface
LAS16-200:  SCMI - System Management and Control InterfaceLAS16-200:  SCMI - System Management and Control Interface
LAS16-200: SCMI - System Management and Control Interface
 
Boot process: BIOS vs UEFI
Boot process: BIOS vs UEFIBoot process: BIOS vs UEFI
Boot process: BIOS vs UEFI
 
Instalacao ubuntu
Instalacao ubuntuInstalacao ubuntu
Instalacao ubuntu
 
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
 
Introduction to Embedded Linux
Introduction to Embedded LinuxIntroduction to Embedded Linux
Introduction to Embedded Linux
 
Honeywell Experion HS
Honeywell Experion HSHoneywell Experion HS
Honeywell Experion HS
 
RTOS - Real Time Operating Systems
RTOS - Real Time Operating SystemsRTOS - Real Time Operating Systems
RTOS - Real Time Operating Systems
 
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
 
Redes Industriais
Redes IndustriaisRedes Industriais
Redes Industriais
 
Android Booting Sequence
Android Booting SequenceAndroid Booting Sequence
Android Booting Sequence
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Processors selection
Processors selectionProcessors selection
Processors selection
 

Semelhante a PHP e componentes reutilizáveis

Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
Flávio Lisboa
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
BrunoSouza617
 
Code Igniter & Zend Framework Uma UniãO De Sucesso
Code Igniter & Zend Framework   Uma UniãO De SucessoCode Igniter & Zend Framework   Uma UniãO De Sucesso
Code Igniter & Zend Framework Uma UniãO De Sucesso
Jose Wilker
 
WordCamp SP 2019 - PeachPie unindo Php com C# .Net Core
WordCamp SP 2019 - PeachPie unindo Php com C# .Net CoreWordCamp SP 2019 - PeachPie unindo Php com C# .Net Core
WordCamp SP 2019 - PeachPie unindo Php com C# .Net Core
Vanessa Valle
 
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
Thiago Sinésio
 
Code Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucessoCode Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucesso
Jose Wilker
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro bolo
elliando dias
 
Aplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkAplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend Framework
Flávio Lisboa
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
Flávio Lisboa
 
Performance de verdade com Phalcon Framework
Performance de verdade com Phalcon FrameworkPerformance de verdade com Phalcon Framework
Performance de verdade com Phalcon Framework
Jaime Neto
 
Software livre - Parte 3
Software livre - Parte 3Software livre - Parte 3
Software livre - Parte 3
Fabrício Basto
 
4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf
RubenManhia
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend Framework
Domingos Teruel
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançado
Targettrust
 
Introducao ao PHP @edgarsandi
Introducao ao PHP @edgarsandiIntroducao ao PHP @edgarsandi
Introducao ao PHP @edgarsandi
Edgar Rodrigues Sandi
 
FISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHP
Flávio Lisboa
 
WP Composer
WP ComposerWP Composer
WP Composer
Eduardo Pittol
 
Cake Php
Cake PhpCake Php
Cake Php
Laura Lopes
 
Manual PHP
Manual PHPManual PHP
Manual PHP
valterccouto
 
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de SoftwareDextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra
 

Semelhante a PHP e componentes reutilizáveis (20)

Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
 
Code Igniter & Zend Framework Uma UniãO De Sucesso
Code Igniter & Zend Framework   Uma UniãO De SucessoCode Igniter & Zend Framework   Uma UniãO De Sucesso
Code Igniter & Zend Framework Uma UniãO De Sucesso
 
WordCamp SP 2019 - PeachPie unindo Php com C# .Net Core
WordCamp SP 2019 - PeachPie unindo Php com C# .Net CoreWordCamp SP 2019 - PeachPie unindo Php com C# .Net Core
WordCamp SP 2019 - PeachPie unindo Php com C# .Net Core
 
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
 
Code Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucessoCode Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucesso
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro bolo
 
Aplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend FrameworkAplicações Profissionais para Internet com Zend Framework
Aplicações Profissionais para Internet com Zend Framework
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
Performance de verdade com Phalcon Framework
Performance de verdade com Phalcon FrameworkPerformance de verdade com Phalcon Framework
Performance de verdade com Phalcon Framework
 
Software livre - Parte 3
Software livre - Parte 3Software livre - Parte 3
Software livre - Parte 3
 
4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf4. Introdução ao PHP.pdf
4. Introdução ao PHP.pdf
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend Framework
 
T@rget trust asp.net avançado
T@rget trust   asp.net avançadoT@rget trust   asp.net avançado
T@rget trust asp.net avançado
 
Introducao ao PHP @edgarsandi
Introducao ao PHP @edgarsandiIntroducao ao PHP @edgarsandi
Introducao ao PHP @edgarsandi
 
FISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHPFISL12. Web Services e Computação em Nuvem com PHP
FISL12. Web Services e Computação em Nuvem com PHP
 
WP Composer
WP ComposerWP Composer
WP Composer
 
Cake Php
Cake PhpCake Php
Cake Php
 
Manual PHP
Manual PHPManual PHP
Manual PHP
 
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de SoftwareDextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
Dextra Sistemas: A linguagem PHP no modelo de Fábrica de Software
 

Mais de elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
elliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
elliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
elliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
elliando dias
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
elliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
elliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
elliando dias
 
Ragel talk
Ragel talkRagel talk
Ragel talk
elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
elliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
elliando dias
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
elliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
elliando dias
 
Rango
RangoRango
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
elliando dias
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
elliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
elliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 

Mais de elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

PHP e componentes reutilizáveis

  • 1. PHP e componentes reutilizáveis Victor Requião (victorrequiao@gmail.com)
  • 2. PHP e componentes reutilizáveis Como seguiremos... • PHP • Componentes e reuso de software • PEAR • PHP Classes • Zend Framework • Xajax • Smarty • Referências Victor Requião 2
  • 3. PHP e componentes reutilizáveis PHP PHP (PHP: Hypertext Preprocessor) é uma linguagem open-souce e interpretada, originalmente projetada como uma maneira alto-nível de fornecer dinamicidade para a Web (apesar de existir a versão PHP-GTK para ambiente desktop). Tendo sido escrita inicialmente como um conjunto de binários CGI em C, PHP incorpora elementos de outras linguagens como Perl, C++ e Java. Apartir da sua versão 5 (atual 5.2.1) se destacou ainda mais no cenário Web, tendo em vista que foram adicionadas grandes melhorias no que diz respeito à POO (Programação Orientada a Objetos). Chegando atualmente, segundo a Zend Technologies, mais de 40% das aplicacões Web estarem rodando PHP. Victor Requião 3
  • 4. PHP e componentes reutilizáveis Componentes e reuso de software Para a obtenção de produtos de software com alta qualidade e que sejam economicamente viáveis, faz-se extremamente necessário a adoção de um conjunto sistemático de processos, técnicas e ferramentas. Reutilizando partes bem especificadas, desenvolvidas e testadas, pode-se construir software em menor tempo e com maior confiabilidade. O Desenvolvimento Baseado em Componentes (DBC) surgiu como uma nova perspectiva para o desenvolvimento de software, cujo objetivo é a fragmentação de blocos monolíticos em componentes que interagem entre si. Reduzindo, desta forma, a complexidade do desenvolvimento de sistemas, assim como os seus custos, através da utilização de componentes que, em princípio, seriam adequados para serem utilizados em outras aplicações. Victor Requião 4
  • 5. PHP e componentes reutilizáveis PEAR O PEAR (PHP Extension and Application Repository) é um framework e sistema de distribuição para componentes PHP. Os principais objetivos do PEAR são: • Ser um repositório open-source de componentes orientados à objeto reutilizáveis em PHP; • Promover um sistema para distribuição de código e manutenção de pacotes; • Estabelecer uma padrão para a codificação de componentes em PHP; • Firmar um contato com a comunidade PHP/PEAR através de website, listas de discussão e mirros para download. Victor Requião 5
  • 6. PHP e componentes reutilizáveis PEAR Dentre uma grande variedade de pacotes de componentes do PEAR, alguns se destacam no desenvolvimento efetivo de aplicações Web: • Caching • Banco de dados • Encriptação • Eventos • Logging • Mail • Validação • Web Services • XML Victor Requião 6
  • 7. PHP e componentes reutilizáveis Zend Framework O Zend Framework é um esforço da Zend Technologies em produzir um framework open-source para o desenvolvimento de aplicações robustas em PHP. Existem como metas: • Promover um repositório de componentes que sejam ativamente suportados • Oferecer um sistema completo de desenvolvimento para aplicações Web • Fazer uso de táticas avançadas quanto à programação em PHP • Contribuir com o PHP Collaboration Project (http://www.zend.com/php_collaboration_project), iniciativa open-source entre a Zend Technologies e a comunidade quanto ao desenvolvimento de projetos avançados em PHP 5. Victor Requião 7
  • 8. PHP e componentes reutilizáveis Zend Framework Pacotes de componentes presentes na versão 0.9.2: • Autenticação e autorização (Zend_Acl, Zend_Authentication e Zend_Session) • Infraestutura interna (Zend_Cache, Zend_Debug, etc) • Documentação • Internacionalização (Zend_Date, Zend_Translate) • E-mail, formatos e busca (Zend_Json, Zend_Mail, Zend_Search_Lucene, etc) • Model-View-Controller • Web e Web Services Victor Requião 8
  • 9. PHP e componentes reutilizáveis PHP Classes Repositório de classes open-source desenvolvidas em PHP, mantido por uma comunidade de usuários de diversos países. O PHP Classes possue uma certa vantagem e desvantagem quanto ao PEAR: Vantagem: • Maior opção de componentes não existentes no PEAR, como por exemplo, aqueles relacionados à Programação Orientada à Aspectos (AOP). Desvantagem: • Falta de garantia com relação à qualidade dos componentes e nem sempre há uma compatibilidade entre eles. Victor Requião 9
  • 10. PHP e componentes reutilizáveis PHP e Ajax Ajax e a troca de informações de forma “silenciosa” com o servidor. Victor Requião 10
  • 11. PHP e componentes reutilizáveis PHP e Ajax Dentro dos inúmeros componentes Ajax existentes para PHP, um dos mais fáceis e poderosos é o Xajax. Permitindo uma camada de alto nível, onde aplicações simples ou mais robustas possam rodar sem a necessidade de sobrecarregar o servidor com requisições desnecessárias. Xajax permite que seja feito um mapeamento de funções ou métodos de objetos PHP em funções JavaScript, fazendo com que a aplicação as enxergue como se estivessem localmente no lado do cliente. Victor Requião 11
  • 12. PHP e componentes reutilizáveis Smarty Arquitetura MVC e a comunicação entre componentes de negócio e apresentação. Victor Requião 12
  • 13. PHP e componentes reutilizáveis Smarty Smarty é um sistema de templates em PHP, responsável por separar a camada de negócio da camada de apresentação através de arquitetura MVC (Model View Controller). Para isso é utilizado um sistema de tags que garante que a lógica de apresentação possa ser manipulada por qualquer pessoa, sem que esta tenha conhecimentos sobre o negócio da aplicação. Desta maneira, evitam-se riscos acidentais que tendem a comprometer a qualidade do processo de desenvolvimento de software. Victor Requião 13
  • 14. PHP e componentes reutilizáveis Referências PHP • http://www.php.net Zend Framework • http://framework.zend.com PEAR • http://pear.php.net Xajax • http://www.xajaxproject.org Smarty • http://smarty.php.net Victor Requião 14
  • 15. Obrigado! Victor Requião (victorrequiao@gmail.com) 15