Mostrando entradas con la etiqueta php. Mostrar todas las entradas
Mostrando entradas con la etiqueta php. Mostrar todas las entradas

martes, 17 de agosto de 2010

traductor de codigo php a codigo java

obtenido de aqui: nTile PtoJ
La ruta más corta desde PHP a Java Numiton OFRECE Una alternativa PARA LA Migración Automatizada de la base de Código PHP. Numiton ofrece una alternativa automatizada para la migración de base de código PHP. Así, Las Aplicaciones establecidas podran beneficiarse de las Ventajas Que OFRECE Java Su Capacidad en un Nivel de empresa. Así, las aplicaciones establecidas podrán beneficiarse de las ventajas que ofrece Java en su capacidad a nivel de empresa.

NTILE PtoJ es un migrador de software automatizado que traduce el código fuente PHP en Java ™ / Java Enterprise Edition.
La aplicación resultante parece y se comporta muy parecido al original, como la estructura y la semántica son totalmente iguales

Detrás de las escenas, la calidad del código se mejora mediante la plena utilización de las capacidades de Java.
Dependiendo de las necesidades de cada proyecto, NTILE PtoJ se pueden personalizar para ofrecer sabores diferentes de salida.
Una de las aplicaciones que han emigrado de esta manera es el foro phpBB motor bien conocidas. El Resultado de la Traducción, nBB2, Poderes Nuestro Propio foro FUE y Donado recientemente una la Comunidad de Código Abierto Como El Proyecto de SourceForge.

php implementado e interpretado por java

obtenido de  aqui php interpretado por java
pagina  oficial del proyecto quercus
Quercus es una implementación de PHP 5.2 escrita totalmente en Java, algo similar al famoso Hiphop de facebook sólo que en lugar de un traductor a C++ se trata de un intérprete PHP que corre en Java.
Se ha oído hablar mucho menos de Quercus que de HipHop pero es probable que Hiphop no llegue a utilizarse tanto como ya se está utilizando Quercus.
¿En qué casos puede ser interesante utilizar Quercus?
  • Desplegar aplicaciones web en entornos muy controlados donde sólo se acepta Java o en plataformas cloud computing que no soportan PHP pero sí Java (Google App Engine).
  • Necesitar cierta mejora en rendimiento que puede suponer utilizar Quercus en ciertas situaciones.
  • Desplegar scripts PHP encapsulados en una aplicación Java.
  • Utilizar PHP como motor de scripting de una aplicación Java, desarrollando el frontend por ejemplo en Swing y dejando el trabajo sucio para los scripts PHP.
  • Integrar aplicaciones PHP desde Java. (Alfresco lo utiliza).
  • Estás aburrido, probar por curiosidad.
obtenido de :  ¿Cuál es el PHP / Puente de Java?

El PHP / Java Bridge es una aplicación de streaming, protocolo de red basado en XML, que puede ser usado para conectar un motor de scripts nativo, por ejemplo, PHP, Python o sistema, con una máquina virtual Java. Es hasta 50 veces más rápido que el local RPC a través de SOAP, requiere menos recursos del lado del servidor web. Es más rápido y más fiable que la comunicación directa a través de la interfaz nativa de Java, y no requiere de componentes adicionales para invocar procedimientos de Java desde PHP o PHP procedimientos de Java.
J2EE extremo posterior agrupación y el equilibrio de carga de Apache son compatibles, así como ejecutar scripts PHP dentro de JSP, JSF o de otros marcos.

Integración de Java y PHP

obtenido de :  Integración de Java y PHP

Introducción

Existen dos formas diferentes de integrar PHP y Java: en primer lugar, se puede integrar PHP dentro de un entorno de ejecución de servlets de Java, que en estos momentos es una solución más estable y más eficiente. La segunda opción es la de integrar Java dentro de PHP. La primera forma de integración se realiza a traves de un módulo SAPI que actua como interfaz del servidor de servlets. La segunda forma se realiza mediante esta extensión de Java.
Esta extensión de Java proporciona de forma sencilla los medios necesarios para crear e invocar métodos sobre objetos de Java desde PHP. La JVM se crea utilizando JNI y todo se ejecuta en un unico proceso.
Aviso
Esta extensión es EXPERIMENTAL. Esto significa que el comportamiento de esta extensión, los nombre de sus funciones y en definitiva TODO lo documentado sobre esta extensión, puede cambiar en una futura versión de PHP SIN AVISO. La advertencia queda hecha, y utilizar esta extensión queda bajo su propia responsabilidad.

Requisitos

Para utilizar esta extensión es necesario disponer de una máquina virtual Java (JVM) instalada en el sistema.

Instalación

Esta extension PECL no esta ligada a PHP.
En PHP 4 la fuente de las extensiones PECL pueden encontrarse en el directorio ext/ que se existe en las fuentes de PHP o en el enlace PECL de arriba. Para incluir el soporte de Java en PHP, es necesario añadir el parámetro --with-java[=DIR] a las opciones de configuración de PHP, donde DIR apunta al directorio base de instalación del JDK. Esta extensión solamente puede ser construida como un módulo compartido. En el archivo php-src/ext/java/README se incluye mas información sobre como construir esta extensión.
Los usuarios de Windows deben activar la opción php_java.dll en el fichero php.ini para poder utilizar estas funciones. En PHP 4, esta DLL se encuentra en el directorio extensions/ que existe en los binarios de PHP para Windows. Podeis descargar esta DLL de las extensiones PECL desde la pagina PHP Downloads o desde http://snaps.php.net/.
Nota: Para poder trabajar con este módulo en un entorno Windows con una versión de PHP <= 4.0.6, se debe hacer accesible el archivo jvm.dll desde el PATH del sistema. Para versiones de PHP > 4.0.6 no es necesario realizar esta operación.

Configuración en tiempo de ejecución

El comportamiento de estas funciones está afectado por los valores definidos en php.ini.

Tabla 1. Opciones de configuració de Java
NombreValor por defectoDonde se cambiaRegistro de cambios
java.class.pathNULLPHP_INI_ALL 
java.homeNULLPHP_INI_ALL 
java.library.pathNULLPHP_INI_ALL 
java.libraryJAVALIBPHP_INI_ALL 
For further details and definitions of the PHP_INI_* constants, see the Apéndice G.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Ejemplos


Ejemplo 1. Ejemplo de Java
  // se obtiene la instancia de la clase de Java java.lang.System desde PHP
  
$system = new Java('java.lang.System');

  
// ejemplo de acceso a las propiedades de Java
  
print 'Version de Java='.$system->getProperty('java.version').'
'
;
  print
'Desarrollador de la JVM=' .$system->getProperty('java.vendor').'
'
;
  print
'Sistema Operativo='.$system->getProperty('os.name').' '.
              
$system->getProperty('os.version').' on '.
              
$system->getProperty('os.arch').'
'
;

  
// ejemplo de java.util.Date
  
$formatter = new Java('java.text.SimpleDateFormat',
                        
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

  print
$formatter->format(new Java('java.util.Date'));?>
Ejemplo 2. Ejemplo de AWT
  // Este ejemplo solo puede ser ejecutado como CGI.

  
$frame  = new Java('java.awt.Frame', 'PHP');
  
$button = new Java('java.awt.Button', 'Hola Mundo de Java!');

  
$frame->add('North', $button);
  
$frame->validate();
  
$frame->pack();
  
$frame->visible = True;

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

  
$frame->dispose();?>
Notas:
  • new Java() crea una nueva instancia de una clase solamente si existe un constructor adecuado. Si no se le pasan parámetros, debe existir un constructor por defecto adecuado, como por ejemplo en el caso de java.lang.System que permite el acceso a la mayoría de sus funcionalidade a través de metodos estáticos.
  • Al acceder a los miembros de una instancia, en primer lugar se buscarán las propiedades del bean y en segundo lugar los miembros publicos. En otras palabras, print $date.time se intentará resolver en primer lugar como $date.getTime() y posteriormente como $date.time.
  • Tanto los miembros estáticos como los miembros de una instancia de un objeto pueden ser accedidos utilizando la misma sintaxis. Ademas, si el objeto es de tipo java.lang.Class, entonces se puede acceder a los miembros estaticos de la clase (tanto los atributos como los metodos).
  • Las excepciones que se lanzan durante la ejecución se transforman en avisos de tipo "warning" de PHP y en resultados de tipo NULL. Los avisos de tipo "warning" se pueden eliminar añadiendo el prefijo "@" a la llamada del metodo. Las siguientes funciones de la API se pueden utilizar para obtener y borrar el ultimo error surgido:
  • La resolución de la sobrecarga es uno de los problemas mas dificiles de resolver dadas las grandes diferencias entre PHP y Java en el tema del "tipado" de las variables. Esta extensión utiliza un metodo simple pero muy efectivo para determinar cual es la mejor decisión a tomar cuando se produce la sobrecarga.
    Ademas, los nombres de los métodos en PHP no distinguen entre mayusculas y minusculas, por lo que se aumenta elnúmero de posibilidades para elegir en las situaciones de sobrecarga.
    Una vez seleccionado el método, los parámetros se transforman si es necesario, incluso con la posibilidad de perder datos (por ejemplo, los números de tipo "double" se transforman en tipo boolean) (Nota del traductor: esta conversion parece totalmente absurda, asi que puede tratarse de un fallo de la documentación de la version original).
  • En PHP, las variables de tipo "array" y "hashtable" pueden ser utilizadas de forma indistinta. En PHP, las hashtables solo pueden incluir en las claves variables de tipo integer o string. Ademas, en Java los arrays cuyas variables son de algun tipo primitivo, no pueden contener huecos. Por ultimo, se debe recordar que este tipo de variables se pasan por valor, por lo que pueden llegar a consumir una cantidad apreciable de memoria y de tiempo.

SAPI de los servlets Java

Basandose en el mismo mecanismo que la extension de Java de PHP, la SAPI de los servlets Java permite ejecutar PHP como un servlet de Java. La ventaja más significativa de esta forma de actuar es que se aprovechan las características de "pooling" y de reutilización de recursos implementadas por la mayoría de servidores que permiten ejecutar servlets. El archivo php4/sapi/README contiene las instrucciones necesarias para compilar el modulo SAPI para los servlets Java. Notas:
  • Aunque, en principio, este código podría ser ejecutado en cualquier servidor que permita la ejecución de servlets, solo se ha probado en el servidor Jakarta/Tomcat desarrollado por la fundación Apache. Por ese motivo, cualquier información sobre la forma de ejecutarlo en otros servidores, los errores encontrados, las soluciones planteadas, etc...sera una información muy apreciada y que animamos a que los desarrolladores envien a los responsables del desarrollo del proyecto PHP.
  • Se pueden producir conflictos entre PHP y SAPI con respecto al directorio de trabajo. Mientras PHP se está ejecutando, el servidor de servlets no podrá cargar ninguna clase que se encuentre en el CLASSPATH si su ruta se especifica de forma relativa y tampoco podrá encontrar el directorio de trabajo utilizado para las tareas de administración y compilación de JSP.

Tabla de contenidos
java_last_exception_clear -- Borra la última excepción de Java
java_last_exception_get -- Obtiene la última excepción de Java

conexion php y java

obtenido de :Zend Java Bridge



Zend proporciona a los desarrolladores de Java Puente PHP con una manera de utilizar código Java existente y crear aplicaciones PHP que utilice el código Java.
El puente de Java integra el código de Java en PHP mediante la conexión del sistema de objetos de PHP con el sistema de objetos de Java Bridge.
Nota:
El puente de Java requiere que usted tenga SUN Microsystems JRE 1.4 (o posterior) o Java de IBM 1.4.2 (o posterior) instalado en su equipo. Durante (o después) de la instalación, (dependiendo del tipo de instalación, se le pide para dirigir el programa de instalación a la ubicación del JRE. Usted debe, por lo tanto, ya se han instalado JRE. JRE de 64 bits no es compatible. Más información acerca de JRE y las actualizaciones más recientes se pueden obtener desde el sitio web de Sun Microsystems.
El puente de Java PHP extensión agrega funciones que permiten crear instancias nuevas clases Java desde dentro de su script PHP. Una vez que una clase Java se crea una instancia, el Puente de Java recibe un mensaje del motor Zend para ejecutar el código Java. El puente de Java ejecuta el script y devuelve los resultados en el motor de Zend.

 
Zend Server Community Edition incluye el Java PHP Puente de Extensión y la posibilidad de reiniciar el puente de Java y configurar las opciones de Java Puente (de la instalación del servidor | Componentes).
El puente de Java es un componente opcional que se instala de forma diferente, dependiendo del sistema operativo (WIN, UNIX, MAC) y el formato método de instalación (EXE, DEB, RPM, Tarball). Una vez que la extensión está instalada y su estado es El, el código PHP puede utilizar la API de Java puente para llamar objetos Java.

 
El proceso de llamar a objetos Java en PHP se describe en el siguiente diagrama:
java_bridge.png Ventajas
El Zend Java Bridge ofrece las siguientes ventajas:

    
* Servidores de aplicaciones J2EE se puede ampliar para incluir a las ventajas que ofrece PHP (en relación con otros idiomas en la Web de activación), como el tiempo de desarrollo, reducción de tiempo de salida al mercado, reducir el TCO (Coste Total de Propiedad), etc
    
* PHP empresas centradas pueden aprovechar los servicios de J2EE que no están presentes en lenguajes de script.
    
* El PHP / Java Bridge ofrece la posibilidad de interactuar con los objetos Java normal.
    
* El puente de Java funciona sin la sobrecarga de una JVM para cada proceso Apache.
    
* El puente de Java consume una cantidad de memoria que es desproporcionadamente pequeño en relación con la cantidad de actividad que maneja. 




Related Links:
Components Working with Components
Working with the Java Bridge
Zend Java Bridge - Configuration Directives
Zend Java Bridge - PHP API
Java Bridge Use Cases