Integración PHP y Java dentro de codeigniter

Tengo un sitio basado en PHP 5 que necesito integrar con una variedad de clases Java que he creado. Básicamente, he creado un servicio web para publicar xml en un archivo, una vez en ese archivo analizo el xml y quiero llamar a métodos dentro de un archivo java.

No tengo idea de cómo llamar a funciones Java desde PHP. He examinado el puente PHP / Java, pero no hay nada que describa claramente cómo configurarlo.

Cualquier ayuda sería muy apreciada

Gracias

Respuesta 1

Deberías considerar el php-java-bridge . Lo he usado en el pasado en un proyecto con un front-end de php y un backend de Java.

Citando desde su sitio web:

PHP / Java Bridge es una implementación de un protocolo de red basado en XML que se puede utilizar para conectar un motor de script nativo, por ejemplo PHP, Scheme o Python, con una máquina virtual Java. Es hasta 50 veces más rápido que el RPC local a través de SOAP, requiere menos recursos en el lado del servidor web. Es más rápido y más confiable que la comunicación directa a través de la interfaz nativa de Java, y no requiere componentes adicionales para invocar procedimientos Java desde PHP o procedimientos PHP desde Java.

Editar: expliqué las desventajas de usar Quercus en otra respuesta SO

Respuesta: 2

Puede usar algo como Thrift , Google Protocol Buffers o Avro para generar una interfaz y pasar mensajes entre los dos idiomas. Esto es similar a lo que Facebook hace para comunicarse entre su PHP y otro código.

Tomando los buffers de proto de Google como ejemplo, creará un archivo .proto que define alguna estructura. Luego ejecuta el compilador proto en ese archivo .proto y generará las clases correspondientes de PHP y Java que se pueden pasar entre los dos idiomas a través de un puente de middleware.

Avro y Thrift vienen con formas de crear clientes y servidores que pueden comunicarse entre sí, donde, como creo, están solos con proto buffers.

Aquí hay un tutorial sobre cómo configurar un cliente Thrift en PHP: http://chanian.com/2010/05/13/thrift-tutorial-a-php-client/

De coures la mejor idea es ir con una aplicación PHP que se ejecuta EN la JVM y entonces tendrán acceso directo a todas las bibliotecas de Java. Podrá llamar a objetos Java como si fueran simples objetos PHP antiguos . Los lenguajes dinámicos alojados en JVM también se están volviendo muy rápidos, especialmente con JDK 7. Quercus (una implementación de PHP que se ejecuta en JVM) en realidad ha demostrado ser más rápido (¡4 veces más rápido!) Que el intérprete PHP convencional.

Además, si está ejecutando PHP en la JVM, puede generar hilos y poner en cola el trabajo en segundo plano ... y todas las otras bibliotecas nuevas a las que podrá acceder ... es una gran victoria cambiar a Quercus.

Respuesta: 3

Tengo la siguiente estructura XML: <PriceBook> <PriceList product = "0D000000.007C.06"> <Price ... /> <Price ... /> </PriceList> ... </ ...

He implementado un enfoque de canalización. Voy a atravesar un árbol y necesito ciertos valores que no están disponibles de antemano ... así que tengo que atravesar el árbol en paralelo (o antes) y una vez más ...

¿Cómo obtener el símbolo de máscara de contraseña nativa del sistema en Java? Puede ser estrella en Windows antiguo, círculo grande en Windows nuevo, algún otro símbolo en Linux y Mac. Actualización: se requiere una solución de oscilación

Estoy escribiendo un complemento Maven ahora y necesito obtener el classpath de otro proyecto de Java. Me gustaría saber si es posible obtener el classpath de otro proyecto java de mi java actual ...