O documento descreve como rodar PHP em um container Java usando Quercus. Ele explica como configurar o Quercus no arquivo web.xml, importar classes Java no PHP e chamar métodos estáticos e não estáticos de classes Java. Também fornece referências para Glassfish, Quercus e outras ferramentas.
5. O que é o Quercus?
Quercus é uma tecnologia da Caucho
rápida, código-aberto, implementação
100% Java da linguagem PHP
6. Preciso de quê?
Um container Java
Glassfish *
Tomcat
Baixar a última versão da biblioteca
7. O que realmente importa?
WEB-INF/lib/quercus.jar
WEB-INF/lib/resin-util.jar
WEB-INF/lib/javamail-141.jar
WEB-INF/web.xml
8. No arquivo web.xml – Parte 1 de 2
<!-- início: habilitando o quercus //-->
<servlet>
<servlet-name>Quercus Servlet</servlet-name>
<servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class>
<!-- para habilitar o banco de dados
<init-param>
<param-name>database</param-name>
<param-value>java:comp/env/jdbc/BASEMAPEADAJNDI</param-value>
</init-param>
-->
</servlet>
<servlet-mapping>
<servlet-name>Quercus Servlet</servlet-name>
<url-pattern>*.php</url-pattern>
</servlet-mapping>
<!-- final: habilitando o quercus //-->
...
9. No arquivo web.xml – Parte 2 de 2
...
<welcome-file-list>
<welcome-file>index.php</welcome-file>
</welcome-file-list>
<!-- início: referência à origem dos dados //-->
<!--
<resource-ref>
<res-ref-name>jdbc/MINHABASE</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
-->
<!-- final: referência à origem dos dados //-->
10. Agora já posso fazer meu projeto...
MEUPROJETO.WAR/
- WEB-INF
- lib: quercus.jar, resin-util.jar,
javamail-141.jar
- web.xml
- index.php
14. Classe QueroUmElefantinho.java
package info.netinho.desafio;
public class QueroUmElefantinho {
private String queroumelefantinho;
public QueroUmElefantinho() {
this.queroumelefantinho = quot;Quero um elefantinho!quot;;
}
public String get() {
return this.queroumelefantinho;
}
public static String getEstatico() {
return quot;Quero um elefantinho!quot;;
}
}