JPHP - an implementation of PHP
JPHP is a new implementation for PHP which uses the Java VM. It supports many features of the PHP language (5.6+).
How does it work? JPHP is a compiler like
javac, it compiles php sources to JVM bytecode and then
can execute the result on the Java VM.
- Official Site: j-php.net
We develop a new IDE for beginners like
Game Maker or
Scirra Construct. It's based on JPHP, JavaFX, Java 8, Gradle and allows to create desktop games and apps for Linux, Windows and Mac (maybe Android and other platforms in future). The project name is
DevelNext (https://github.com/jphp-compiler/develnext), the current status and version of the project is BETA. The project has not yet been localized in English.
JPHP is not a replacement for the Zend PHP engine or Facebook HHVM. We don’t plan to implement the zend runtime libraries (e.g. Curl, PRCE, etc.) for JPHP.
Our project started in October 2013. There were a few reasons for that:
- Ability to use java libraries in PHP
- Upgrading performance via JIT and JVM
- Replacing the ugly runtime library of Zend PHP with a better runtime library.
- Using the PHP language not only on the web
- Also: unicode for strings and threads
- PHP 5.6+ (some language features from PHP 7).
- JIT (~2.5 faster PHP 5.6, ~1.1 faster PHP 7), Optimizer - Performance benchmarks
- Using java libraries and classes in PHP code.
- Unicode for strings (UTF-16, like in Java)
- Threading, Sockets, Environment architecture (like sandbox objects in the runkit zend extension).
- GUI (Swing or JavaFX)
- Embedded cache system for classes and functions
- Optional Hot Reloading for classes and functions
Ability to use on Android OS(not yet)
What JPHP supports from PHP 7?
- Context Sensitive Lexer.
- Fix list() behavior inconsistency (SNAPSHOT).
- Throwable Interface (SNAPSHOT).
- Group Use Declarations (SNAPSHOT).
- Uniform Variable Syntax (SNAPSHOT, partly).
- Wiki here: read
- You can find the latest api documentation here: http://jphp-docs.readthedocs.org/
- To contribute to the api documentation, you can fork the
Getting started (Hello World)
Build SNAPSHOT from sources
gradle install to build and install the jphp modules and libraries into the mavel local repository. After this, you can use jphp in your projects as a maven dependency.