esta semana aqui no trabalho tive uma demanda na qual foi necessário utilizar um objeto Java, por assim dizer, no PHP, bem tudo bem se estivessímos no PHP 4, mas pra minha infelicidade geral fiz uma busca no google e o resultado não foi muito animador, pra resumir a história a melhor opção encontrada foi um projeto denominado "Bridge".
Analisando o tal "Bridge" não demorou para notar que não me atenderia:
- é necessário instalar o tomcat
- era necessário rodar a app no cliente( ah, esqueci de mencionar era uma app php-gtk).
Analisando o caso, chegamos em na seguinte conclusão:
- vamos criar uma classe que irar intermediar minha app com as classes java e conforme a necessidade eu executo chamadas por meio do como exec do php uma espécie de interface.
Para exemplificar vamos criar uma classe simple em java( Hello ) que vai mudar seu retorno de acordo com sua chamada, depois um arquivo php que fara a chamada a esta classe.
simples como tem de ser :), claro, neste exemplo.
-- begin Hello.java
/**
* testa a quantidade de argumentos recebido e no caso
* de nenhum argumento seja inforamdo retorna um objeto
* em notação JSON com o status de false ou true se ao
* menos um argumento for inforamdo
*
* @name Hello
* @return String
* @example java Hello | java Hello somevalue
*/
class Hello{
public static void main( String args[] ){
if( args.length == 0)
System.out.println("{\"status\": \"false\"}");
else
System.out.println("{\"status\": \"true\"}" );
}
}
-- end Hello.java
agora vamos ao exemplo( vou fazer a chamada diretamente no PHP sem nenhuma saida em GTK porque o intuito é mostrar apenas o funcionamento).
-- begin testPHP5Java.php
*?php
$obj = exec("java Hello");
echo "resultado: \n\n";
print_r( json_decode( $obj ) );
echo "\n\n\n\n";
-- enf testPHP5Java.php
basta ir ao seu shell preferido e digitar:
php testPHP5Java.php

0 comentários:
Postar um comentário