php java
The PHP code here is simple and straight forward. It is not
OOP. But you probably got enough of that while doing the
Java code.
<?php
java_require("F:\\wamp5\\www\\classes\\");
$obj = new Java("hello");
// Call the "sayHello()" method
$output = $obj->SayHello();
echo $output.' this text in PHP
'; // Displays (so this comes from the class!)
// Call the "SayNumber()" method
$output = $obj->SayNumber();
// Displays (so this comes from the class!)
echo $output.' is a lucky number';
//Because the JVM caches everything we want reset while
playing with the code. Otherwise the
// a cached version of the same class file will be used
rather than the new one
echo "
Resetting back-end to initial state\n";
// suppress the warning message from the use of reset.
@java_reset();
?>
That's it. Now browse to the PHP page and you should get
the results shown below.
Exemplo #1 Exemplo da Java
<?php
// get instance of Java class java.lang.System in PHP
$system = new Java('java.lang.System');
// demonstrate property access
echo 'Java version=' . $system->getProperty('java.version') . '<br />';
echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br />';
echo 'OS=' . $system->getProperty('os.name') . ' ' .
$system->getProperty('os.version') . ' on ' .
$system->getProperty('os.arch') . ' <br />';
// java.util.Date example
$formatter = new Java('java.text.SimpleDateFormat',
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
echo $formatter->format(new Java('java.util.Date'));
?>
Exemplo #2 Exemplo da AWT
<?php
// Este exemplo é pretendindo para ser executado em CLI.
$frame = new Java('java.awt.Frame', 'PHP');
$button = new Java('java.awt.Button', 'Hello Java World!');
$frame->add('North', $button);
$frame->validate();
$frame->pack();
$frame->visible = True;
$thread = new Java('java.lang.Thread');
$thread->sleep(10000);
$frame->dispose();
?>
- new Java() criará uma instância de uma classe se um construtor apropriado estiver disponível. Se nenhum parâmetros for passado e o construtor padrão for utilizável já que prove acesso à classes como java.lang.System que expõe a maior parte de suas funcionalidades através de métodos estáticos.
- Acessar um membro de uma instância primeiro procurará por uma propriedade bean, depois por campos públicos. Em outras palavras, print $date.time elel primeiro tentará trabalhar com $date.getTime(), depois com $date.time.
- Tanto membros estáticos como de instância podem ser acessados em um objeto com a mesma sintaxe. Além disso, se o objeto java é do tipo java.lang.Class, membros estáticos da classe (campos e métodos) podem ser acessados.
-
Exceções disparadas resultam em avisos do PHP e em resultados NULL. Os avisos podem ser eliminados prefixando uma chamada de método com um sinal "@". As seguintes APIs podem ser usadas para obter e reniciar o último erro:
- Resolução de sobrecarga em geral é um problema complicado dada às diferenças nos tipos entre as duas linguagens. A extensão Java aplica uma métrica simples, mas relativamente eficaz, para determinar qual sobrecarga é a melhor. Além disso, nomes de métodos no PHP não são sensíveis ao caso, potencialmente aumentando o número de sobrecargas a serem escolhidas. Uma vez que um método é escolhido, os parâmetros são alterados se necessário, possivelmente com perda de dados (exemplo: números de ponto flutuante de precisão dupla serão convertidos para booleano).
- Na tradição do PHP, arrays e hashtables podem ser usados de forma alternada. Perceba que hashtables no PHP só podem ser indexadas por inteiros e strings; e que arrays de tipos primitivos em Java não podem ser esparsos. Também note que essas estruturas são passadas por valor, então pode ter custo em termos de memória e tempo.
anto dot justus at gmail dot com
10-Jun-2009 10:00
anto dot justus at gmail dot com
10-Jun-2009 09:08
Session sharing with php and java
------------------------------------------
<?php require_once("java/Java.inc");
$session = java_session();
?>
<HTML>
<TITLE>PHP and JSP session sharing</title>
<BODY>
<?php
if(is_null(java_values($session->get("counter")))) {
$session->put("counter", 1);
}
$counter = java_values($session->get("counter"));
print "HttpSession variable \"counter\": $counter<br>\n";
$session->put("counter", $counter+1);
?>
<a href="sessionSharing.jsp">JSP page</a>
</BODY>
</HTML>
