PHP com Suporte a Java
por Rogério Bourscheidt Kunkel

Devido ao fato de muitos amigos meus me perguntarem sobre o funcionamento da linguagem Java interpretada dentro do PHP resolvi escrever este pequeno artigo, que engloba alguns exemplos do suporte a Java do PHP.



A partir do PHP 4 temos um mecanismo simples para que possamos criar e chamar métodos de objetos Java do PHP. A Java Virtual Machine (JVM) é criada usando a Java Native Interface (JNI) e tudo é executado dentro do mesmo processo.

Existem diversas implementações com sucesso da Sun, IBM e Kaffe de Kits de Desenvolvimento para Java (JDKs).

Esta propriedade de suorte do PHP é muito interessante devido ao fato do aproveitamento de códigos providos de outras linguagens. Por exemplo, caso você tenha uma aplicação em Java e queira tornar a mesma aplicável ao formato PHP devido a problemas de velocidade, interpretador JDk no cliente ou outros você pode adaptar seu código com pequenos ajustes para que a mesma possa ser utilizada no ambiente PHP.

Sempre é bom lembrar que para se utilizar deste recurso você deve ter habilitada a dll do java no php.ini (extension=php_java.dll), retirando o ; do início do nome da dll.

O primeiro exemplo que segue mostra como acessar as propriedades de objetos Java:


<?php
//--------------------
//Exemplo 1
//Acesso de propriedades Java
//--------------------
$system = new Java("jva.lang.System");
print 
"Java version=" $system->getProperty("java.version") . "<BR>\n";
print 
"Java vendor=" $System->getProperty("java.vendor") . "<p>\n\n";
print 
"OS=" $system->getProperty("os.name") . " "// nome do sistema operacioanl
        
$system->getProperty("os.version") . " on ".  // versão
        
$system->getProperty("os.arch") . "<BR>\n";

// formata a data
$formatter = new Java("java.text.SimpleDateFormat""EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
print 
$formatter->format(new Java("java.util.Date")) . "\n";
?>


No segundo exemplo vamos mostrar como usar a AWT para criar um botão:


<?php
//--------------------
//Exemplo 2
//processo para criação de botão através da AWT
//--------------------
$frame = new Java("java.awt.Frame""Zend");
$button = new Java("java.awt.Button""Oi mundo Java!");
$frame->add("North"$button);
$frame->validate();
$frame->pack();
$frame->visible True;

$thread = new Java("java.lang.Thread");
$thread->sleep(10000);

$frame->dispose();
?>


É isso aí pessoal, no caso de qualquer dúvida basta enviar um comentário abaixo!

Abraços,
Rogério Bourscheidt Kunkel