SlideShare una empresa de Scribd logo
1 de 10
Rodando PHP sob JVM com Quercus 
Jefferson Prestes 
Arquiteto de aplicações web
About me 
Sou um desenvolvedor de software, apaixonado por desenvolver programas, com experiência em 
Arquitetura e Integração de Software de uma ampla variedade de aplicações de negócios. 
Particularmente, me interesso em web, web móvel e de desenvolvimento de software cliente / servidor 
usando Java, JavaScript, HTML e PHP. Tenho experiência com Oracle PL / SQL, MySQL e 
PostgreSQL. 
Fui engenheiro de integração da PayPal Brasil por 2 anos e antes tive experiências em empresas 
como JBoss, RedHat e Editora Abril. 
Também sou empreendedor e tenho uma pequena empresa.
Agenda 
●PHP: uma breve história e funcionamento 
●Quercus - implementação Java do PHP 
●Como rodar uma app PHP no Tomcat 
●Como utilizar classes Java dentro do PHP 
●Demo
PHP: breve história e funcionamento 
●PHP: Personal Home Page tools, agora PHP 
Hypertext Preprocessor 
●Linguagem de script desenvolvida em 1994 
por Rasmus Lerdorf (pasmem, da Groelandia!) 
●Escrito em C 
●Roda como complemento no Apache ou Filtro 
ISAPI no Microsoft IIS
Quercus: implementação em Java do PHP 
●Implementação em Java das funções do PHP5 
●Open source, disponível sob licença GPL 
●Melhor de 2 mundos: Recursos de App Server Java e 
a Produtividade e recursos do PHP 
●Não reivente a roda aproveite ótimos softwares para rodar 
com sua app Java existente. Quercus já esta certificada 
para rodar: Joomla, Wordpress, PHP-Nuke, phpMyAdmin, 
Mantis, MediaWiki
Como rodar uma app PHP no Tomcat 
●Faça download do war do Quercus 
●Descompacte o pacote numa pasta. De preferencia, 
crie um projeto PHP apontando para o mesmo 
●Abra o manager do Tomcat e faça o deploy manual do 
quercus 
●Crie suas paginas PHP
Como rodar uma app PHP no JBoss 
●Faça download do war do Quercus 
●Crie uma pasta dentro da pasta deploy da instância. Depois 
incluia o sufixo .war ao nome da pasta. Descompacte o 
conteúdo do war do quercus dentro desta pasta.Crie um 
arquivo jboss-web.xml, informe as configurações de 
context-root e salve em WEB-INF 
●Suba a instância do JBoss 
●Crie suas paginas PHP colocando-as dentro da pasta criada. O 
JBoss irá fazer o deploy automaticamente.
Como utilizar classe Java no PHP 
●Crie um projeto Java e adicione a biblioteca resin.jar 
●Crie sua classe extendendo a classe AbstractQuercusModule 
●Gere o jar da sua biblioteca e adicione em WEB-INF/lib 
●Crie a pasta META-INF/services e crie o 
arquivo com.caucho.quercus.QuercusModule. Neste arquivo coloque o nome 
completo da classe (com os pacotes) 
●Na sua página PHP adicione a diretiva import como no Java e utilize como uma classe 
PHP 
●Classes Java e JavaEE básicas não é necessário adcionar no arquivo 
.com.caucho.quercus.QuercusModule
Demo e Perguntas 
●Projeto demo em 
www.novatrix.com.br/downloads/quercus.zip 
●Site do projeto: www.caucho.com 
●Sempre vale lembrar: www.php.net
Contato 
●Twitter jeffprestes 
●www.linkedin.com/in/jeffprestes 
●Github.com/jeffprestes

Más contenido relacionado

La actualidad más candente

Java script vs vb script
Java script vs vb scriptJava script vs vb script
Java script vs vb script
Nielson Santana
 
Apresentação Wordpress FLISOL 2010
Apresentação Wordpress FLISOL 2010Apresentação Wordpress FLISOL 2010
Apresentação Wordpress FLISOL 2010
Zarathon Maia
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
Carlos Santos
 

La actualidad más candente (20)

Construindo uma empresa de serviço Web baseada em Software Livre e Colaboraçã...
Construindo uma empresa de serviço Web baseada em Software Livre e Colaboraçã...Construindo uma empresa de serviço Web baseada em Software Livre e Colaboraçã...
Construindo uma empresa de serviço Web baseada em Software Livre e Colaboraçã...
 
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
Dicas para Workflow WordPress + JavaScript - WordCamp SalvadorDicas para Workflow WordPress + JavaScript - WordCamp Salvador
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
 
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIDesenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLI
 
desenvolvimento-web-javascript
desenvolvimento-web-javascriptdesenvolvimento-web-javascript
desenvolvimento-web-javascript
 
Blazor #SnetTalks3
Blazor  #SnetTalks3Blazor  #SnetTalks3
Blazor #SnetTalks3
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front end
 
Java script vs vb script
Java script vs vb scriptJava script vs vb script
Java script vs vb script
 
Apresentação Wordpress FLISOL 2010
Apresentação Wordpress FLISOL 2010Apresentação Wordpress FLISOL 2010
Apresentação Wordpress FLISOL 2010
 
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
 
Introdução ao Nodejs
Introdução ao NodejsIntrodução ao Nodejs
Introdução ao Nodejs
 
(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript(A04 e A05) LabMM3 - JavaScript
(A04 e A05) LabMM3 - JavaScript
 
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
 
Desenvolvendo com IONIC
Desenvolvendo com IONICDesenvolvendo com IONIC
Desenvolvendo com IONIC
 
Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
 
NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
NOSQLBA 2018 - ArangoDB com python
NOSQLBA 2018 - ArangoDB com pythonNOSQLBA 2018 - ArangoDB com python
NOSQLBA 2018 - ArangoDB com python
 
Node.js for Noobs
Node.js for NoobsNode.js for Noobs
Node.js for Noobs
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.
 

Destacado

Rio oil and gas expo conference diretor de abastecimento,2 paulo roberto costa
Rio oil and gas expo conference diretor de abastecimento,2 paulo roberto costaRio oil and gas expo conference diretor de abastecimento,2 paulo roberto costa
Rio oil and gas expo conference diretor de abastecimento,2 paulo roberto costa
Petrobras
 

Destacado (10)

Korea's Trade Policy Review
Korea's Trade Policy ReviewKorea's Trade Policy Review
Korea's Trade Policy Review
 
Domingo 4 de Pascua 2015
Domingo 4 de Pascua 2015Domingo 4 de Pascua 2015
Domingo 4 de Pascua 2015
 
Работа «на коленке» с массивами UX-требований
Работа «на коленке» с массивами UX-требованийРабота «на коленке» с массивами UX-требований
Работа «на коленке» с массивами UX-требований
 
xyzmo Overview Russian
xyzmo Overview Russianxyzmo Overview Russian
xyzmo Overview Russian
 
Overview pcidss
Overview pcidssOverview pcidss
Overview pcidss
 
Dominic Resume121114
Dominic Resume121114Dominic Resume121114
Dominic Resume121114
 
Mongolian Youth Federation E-Newsletter - December 2014 №1
Mongolian Youth Federation E-Newsletter - December 2014 №1Mongolian Youth Federation E-Newsletter - December 2014 №1
Mongolian Youth Federation E-Newsletter - December 2014 №1
 
Frases 2014
Frases 2014Frases 2014
Frases 2014
 
June 19 lesson
June 19   lessonJune 19   lesson
June 19 lesson
 
Rio oil and gas expo conference diretor de abastecimento,2 paulo roberto costa
Rio oil and gas expo conference diretor de abastecimento,2 paulo roberto costaRio oil and gas expo conference diretor de abastecimento,2 paulo roberto costa
Rio oil and gas expo conference diretor de abastecimento,2 paulo roberto costa
 

Similar a Quercus - Running PHP over Java

Desenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetosDesenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetos
Lucas Vegi
 
PHP e componentes reutilizáveis
PHP e componentes reutilizáveisPHP e componentes reutilizáveis
PHP e componentes reutilizáveis
elliando dias
 

Similar a Quercus - Running PHP over Java (20)

Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátil
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizados
 
WP Composer
WP ComposerWP Composer
WP Composer
 
Desenvolvimento Web com Software Livre
Desenvolvimento Web com Software LivreDesenvolvimento Web com Software Livre
Desenvolvimento Web com Software Livre
 
Maven: Introdução
Maven: IntroduçãoMaven: Introdução
Maven: Introdução
 
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.
 
Cake Php
Cake PhpCake Php
Cake Php
 
12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com Docker
 
Web eclipse
Web eclipseWeb eclipse
Web eclipse
 
Desenvolvimento web no Linux
Desenvolvimento web no LinuxDesenvolvimento web no Linux
Desenvolvimento web no Linux
 
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
Instalando o WordPress local em qualquer sistema operacional - Anyssa Ferreir...
 
Desenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetosDesenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetos
 
PHP e componentes reutilizáveis
PHP e componentes reutilizáveisPHP e componentes reutilizáveis
PHP e componentes reutilizáveis
 
Instalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmenteInstalando e configurando o WordPress localmente
Instalando e configurando o WordPress localmente
 
Performance de verdade com Phalcon Framework
Performance de verdade com Phalcon FrameworkPerformance de verdade com Phalcon Framework
Performance de verdade com Phalcon 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
 
PHP com Docker
PHP com DockerPHP com Docker
PHP com Docker
 
Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013Oficina de PHP - Software Freedom Day Luziânia 2013
Oficina de PHP - Software Freedom Day Luziânia 2013
 
Apostila php
Apostila phpApostila php
Apostila php
 
Apostila básica de PHP
Apostila básica de PHPApostila básica de PHP
Apostila básica de PHP
 

Más de Jeff Prestes

Más de Jeff Prestes (20)

Começando com Quorum - versão 2.6
Começando com Quorum - versão 2.6Começando com Quorum - versão 2.6
Começando com Quorum - versão 2.6
 
Solidity 0.6.x
Solidity 0.6.xSolidity 0.6.x
Solidity 0.6.x
 
Desmistificando blockchain
Desmistificando blockchainDesmistificando blockchain
Desmistificando blockchain
 
Aumento da eficácia jurídica com Smart Contracts
Aumento da eficácia jurídica com Smart ContractsAumento da eficácia jurídica com Smart Contracts
Aumento da eficácia jurídica com Smart Contracts
 
Go (golang) - Porque ele deve ser a linguagem da sua próxima API
Go (golang) - Porque ele deve ser a linguagem da sua próxima APIGo (golang) - Porque ele deve ser a linguagem da sua próxima API
Go (golang) - Porque ele deve ser a linguagem da sua próxima API
 
Chatbots and Internet of Things
Chatbots and Internet of ThingsChatbots and Internet of Things
Chatbots and Internet of Things
 
Facebook Messenger and Go
Facebook Messenger and GoFacebook Messenger and Go
Facebook Messenger and Go
 
Physical web
Physical webPhysical web
Physical web
 
Beacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.jsBeacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.js
 
Eddystone Beacons - Physical Web - Giving a URL to All Objects
Eddystone Beacons - Physical Web - Giving a URL to All ObjectsEddystone Beacons - Physical Web - Giving a URL to All Objects
Eddystone Beacons - Physical Web - Giving a URL to All Objects
 
Making Payments in Android Easy
Making Payments in Android EasyMaking Payments in Android Easy
Making Payments in Android Easy
 
Kraken.js - Giving Extra Arms to your Node.js App
Kraken.js - Giving Extra Arms to your Node.js AppKraken.js - Giving Extra Arms to your Node.js App
Kraken.js - Giving Extra Arms to your Node.js App
 
Mobile Payments Workshop
Mobile Payments WorkshopMobile Payments Workshop
Mobile Payments Workshop
 
Building your own RC Car with Raspberry Pi
Building your own RC Car with Raspberry PiBuilding your own RC Car with Raspberry Pi
Building your own RC Car with Raspberry Pi
 
How to make your Money Machine with Internet of Things
How to make your Money Machine with Internet of ThingsHow to make your Money Machine with Internet of Things
How to make your Money Machine with Internet of Things
 
Interact your wearable and an iot device
Interact your wearable and an iot deviceInteract your wearable and an iot device
Interact your wearable and an iot device
 
Java Device I/O at Raspberry PI to Build a Candy Vending Machine
Java Device I/O at Raspberry PI to Build a Candy Vending MachineJava Device I/O at Raspberry PI to Build a Candy Vending Machine
Java Device I/O at Raspberry PI to Build a Candy Vending Machine
 
RaspberryPi + IoT - Lab to switch on and off a light bulb
RaspberryPi + IoT - Lab to switch on and off a light bulbRaspberryPi + IoT - Lab to switch on and off a light bulb
RaspberryPi + IoT - Lab to switch on and off a light bulb
 
Fazendo maquinas para ganhar dinheiro com Internet das Coisas
Fazendo maquinas para ganhar dinheiro com Internet das CoisasFazendo maquinas para ganhar dinheiro com Internet das Coisas
Fazendo maquinas para ganhar dinheiro com Internet das Coisas
 
Test A/B
Test A/BTest A/B
Test A/B
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Quercus - Running PHP over Java

  • 1. Rodando PHP sob JVM com Quercus Jefferson Prestes Arquiteto de aplicações web
  • 2. About me Sou um desenvolvedor de software, apaixonado por desenvolver programas, com experiência em Arquitetura e Integração de Software de uma ampla variedade de aplicações de negócios. Particularmente, me interesso em web, web móvel e de desenvolvimento de software cliente / servidor usando Java, JavaScript, HTML e PHP. Tenho experiência com Oracle PL / SQL, MySQL e PostgreSQL. Fui engenheiro de integração da PayPal Brasil por 2 anos e antes tive experiências em empresas como JBoss, RedHat e Editora Abril. Também sou empreendedor e tenho uma pequena empresa.
  • 3. Agenda ●PHP: uma breve história e funcionamento ●Quercus - implementação Java do PHP ●Como rodar uma app PHP no Tomcat ●Como utilizar classes Java dentro do PHP ●Demo
  • 4. PHP: breve história e funcionamento ●PHP: Personal Home Page tools, agora PHP Hypertext Preprocessor ●Linguagem de script desenvolvida em 1994 por Rasmus Lerdorf (pasmem, da Groelandia!) ●Escrito em C ●Roda como complemento no Apache ou Filtro ISAPI no Microsoft IIS
  • 5. Quercus: implementação em Java do PHP ●Implementação em Java das funções do PHP5 ●Open source, disponível sob licença GPL ●Melhor de 2 mundos: Recursos de App Server Java e a Produtividade e recursos do PHP ●Não reivente a roda aproveite ótimos softwares para rodar com sua app Java existente. Quercus já esta certificada para rodar: Joomla, Wordpress, PHP-Nuke, phpMyAdmin, Mantis, MediaWiki
  • 6. Como rodar uma app PHP no Tomcat ●Faça download do war do Quercus ●Descompacte o pacote numa pasta. De preferencia, crie um projeto PHP apontando para o mesmo ●Abra o manager do Tomcat e faça o deploy manual do quercus ●Crie suas paginas PHP
  • 7. Como rodar uma app PHP no JBoss ●Faça download do war do Quercus ●Crie uma pasta dentro da pasta deploy da instância. Depois incluia o sufixo .war ao nome da pasta. Descompacte o conteúdo do war do quercus dentro desta pasta.Crie um arquivo jboss-web.xml, informe as configurações de context-root e salve em WEB-INF ●Suba a instância do JBoss ●Crie suas paginas PHP colocando-as dentro da pasta criada. O JBoss irá fazer o deploy automaticamente.
  • 8. Como utilizar classe Java no PHP ●Crie um projeto Java e adicione a biblioteca resin.jar ●Crie sua classe extendendo a classe AbstractQuercusModule ●Gere o jar da sua biblioteca e adicione em WEB-INF/lib ●Crie a pasta META-INF/services e crie o arquivo com.caucho.quercus.QuercusModule. Neste arquivo coloque o nome completo da classe (com os pacotes) ●Na sua página PHP adicione a diretiva import como no Java e utilize como uma classe PHP ●Classes Java e JavaEE básicas não é necessário adcionar no arquivo .com.caucho.quercus.QuercusModule
  • 9. Demo e Perguntas ●Projeto demo em www.novatrix.com.br/downloads/quercus.zip ●Site do projeto: www.caucho.com ●Sempre vale lembrar: www.php.net
  • 10. Contato ●Twitter jeffprestes ●www.linkedin.com/in/jeffprestes ●Github.com/jeffprestes