JPHP - implementasi PHP
JPHP merupakan implementasi baru untuk PHP yang menggunakan Java VM. Ini mendukung banyak fitur bahasa PHP (7.1+).
Bagaimana cara kerjanya? JPHP adalah kompiler seperti javac
, ia mengkompilasi sumber php ke bytecode JVM dan kemudian dapat mengeksekusi hasilnya pada Java VM.
- Situs Resmi: jphp.develnext.org
- JPHP yang luar biasa
Dalam Produksi
Kami mengembangkan IDE baru untuk pemula seperti Game Maker
atau Scirra Construct
. Ini didasarkan pada JPHP, JavaFX, Java 8, Gradle dan memungkinkan untuk membuat game dan aplikasi desktop untuk Linux, Windows dan Mac (mungkin Android dan platform lain di masa depan). Nama proyeknya adalah DevelNext
(https://github.com/jphp-group/develnext-ide), status dan versi proyek saat ini adalah BETA. Proyek ini belum dilokalkan dalam bahasa Inggris.
Sasaran
JPHP bukanlah pengganti mesin Zend PHP atau Facebook HHVM. Kami tidak berencana mengimplementasikan perpustakaan runtime zend (misalnya Curl, PRCE, dll.) untuk JPHP.
Proyek kami dimulai pada bulan Oktober 2013. Ada beberapa alasan untuk itu:
- Kemampuan untuk menggunakan perpustakaan java di PHP (ekstensi sendiri + lainnya)
- Mengganti perpustakaan runtime jelek Zend PHP dengan perpustakaan runtime yang lebih baik.
- Menggunakan bahasa PHP tidak hanya di web saja
- Multithreading seperti di Java dan C#.
- String Unicode (Dukungan Penuh untuk UTF-8, UTF-16).
- Membuat aplikasi GUI Android & Desktop pada bahasa PHP.
Fitur
- PHP 7.1+ (dan banyak fitur bahasa dari PHP 7.2, 7.3, 7.4).
- JIT (~2,5x lebih cepat PHP 5.6, ~1,1x lebih cepat PHP 7.0, ~13% lebih lambat dari PHP 7.4, bench).
- Menggunakan perpustakaan dan kelas Java dalam kode PHP.
- Unicode untuk string (UTF-16, seperti di Java)
- Threading, Sockets, Arsitektur Lingkungan (seperti objek sandbox di ekstensi runkit zend).
- GUI (JavaFX atau SWT)
- Sistem cache tertanam untuk kelas dan fungsi
- Reload Panas opsional untuk kelas dan fungsi
- Kemampuan untuk digunakan pada OS Android : jphp-android
Apa saja yang didukung JPHP dari PHP 7.2?
- Semua fitur kecuali RFC: Pelebaran Tipe Parameter
Apa saja yang didukung JPHP dari PHP 7.3?
- Semua fitur kecuali RFC: Sintaks Heredoc dan Nowdoc Fleksibel
Apa saja yang didukung JPHP dari PHP 7.4?
- Typed Properties 2.0 (sebagian, referensi tidak didukung)
- Referensi Lemah
- Fungsi Panah 2.0 (+ sintaksis beberapa baris)
- Izinkan pelemparan pengecualian dari __toString()
- Operator Penugasan Penggabungan Null
- pemisah_numerik_literal
- Menyebarkan Operator dalam Ekspresi Array
Ekstensi Sendiri
- Perpustakaan Standar - perpustakaan standar runtime sendiri
- Server Http (+Soket Web +Multithread)
- GUI (JavaFX atau SWT)
- Git (berdasarkan JGit)
- JSoup - untuk mengurai html dalam gaya jQuery.
- SQL (mendukung MySQL, PostgreSQL, SQLite, Firebird).
- SSH - untuk bekerja dengan protokol ssh.
- Yaml - untuk mengurai dan memformat yaml.
- Kompres - untuk bekerja dengan arsip tar, gz, bz2, lz4, zip.
- HttpClient - klien http dengan janji.
- SemVer - untuk mengurai versi dalam standar SemVer.
- Mail - untuk mengirim email melalui server SMTP.
- MongoDB - driver untuk Mongo DB 3.0+.
Dokumentasi
- Anda dapat menemukan dokumentasi api terbaru di sini: jphp-runtime/api-docs
- Wiki di sini: baca
Memulai (Halo Dunia)
- Instal jphp package manager (jppm), cara instalasinya.
- Init proyek baru (paket jppm) dengan nilai default:
- Jalankan di konsol
jppm start
.
Anda akan melihat Hello World
di konsol Anda, sumber program ini ada di src/index.php
.
- (Opsional) Untuk memperbarui versi jphp proyek lama Anda:
Bagaimana cara menjalankan benchmark?
// via jphp
./gradlew bench
// via php
php -f bench/src/bench.php
Bangun SNAPSHOT dari sumber
Gunakan gradle install
untuk membangun dan menginstal modul dan pustaka jphp ke dalam repositori lokal mavel. Setelah ini, Anda dapat menggunakan jphp di proyek Anda sebagai ketergantungan maven.
org.develnext.jphp:jphp-<module>:<version>-SNAPSHOT