Baca versi bahasa Inggris dari dokumen ini: Bahasa Inggris
Baca dokumen ini dalam bahasa lain: Inggris, Cina Sederhana .
Dengan kuatnya kebangkitan Go
dan NodeJS
, pangsa pasar PHP
secara bertahap terkikis, namun PHP
secara resmi masih melekat pada bidang pemrograman Web
. Beberapa hal menjadi semakin sulit untuk dipertahankan semakin mereka mencoba untuk mempertahankannya. polarphp
memanfaatkan fitur-fitur yang relevan dari NodeJS
dan Go
untuk merangkum kembali zendVM
, menghapus beberapa fitur lama PHP
yang ditinggalkan dan atribut Web
yang kuat, dan mengimplementasikan serangkaian kerangka runtime baru libpdk
untuk membangun bahasa PHP
menjadi bahasa skrip yang benar-benar universal, memberdayakan PHP
dengan pemrograman asynchronous, coroutine, thread, dukungan unicode
bawaan, file standar IO
dan fitur lainnya, memungkinkan pemrogram PHP
tidak hanya mengerjakan aplikasi web
, tetapi juga dengan tenang menghadapi aplikasi sisi server yang sebenarnya. polarphp
bukanlah bahasa baru, melainkan compiler dan runtime baru untuk bahasa PHP
selain bahasa resmi.
PHP
terbaru dan menghapus fitur bahasa yang usang unicode
bawaan Karena keterbatasan sumber daya pembangunan, maka rencana pembangunan untuk sementara ditetapkan sebagai berikut:
PHP
Anda sendirilit
untuk transplantasi proyek LLVM
polarphp
menggunakan kerangka pengujian regresi phplit
polarvm
dan lengkapi infrastruktur mesin virtualpolarphp
ke set instruksi, dan jangan mendefinisikan lapisan IR untuk saat ini.phplit
untuk menguji semua modul yang dikompilasi mulai dari struktur bahasa hingga set instruksiGC
bawaan PHP
PHP
libpdk
(bagian cpp
)polarphp
dalam jumlah langkah minimum.PHP
yang berfungsi penuh (diimplementasikan menggunakan kode PHP
dengan dukungan dasar libpdk
) polarphp
git clone https://github.com/polarphp/polarphp.git
cd polarphp
git submodule init
git submodule update
git checkout v0.0.1-alpha
./devtools/scripts/build_polarphp.sh
Saat ini, skrip mulai mengkompilasi gambar terkait, yang memerlukan waktu lama. Tunggu kompilasi selesai dan Anda menjalankan:
docker images
Saat ini, harap konfirmasikan bahwa ada gambar berikut di keluaran:
Jika tidak ada masalah, kita mulai menguji apakah polarphp
berjalan normal di mirror.
docker run --rm -it polarphp_debug
Setelah masuk ke container, masuk ke program baris perintah polarphp
kita
polar --version
Jika Anda mendapatkan output berikut:
polarphp 0.0.1-git (built: 2019-01-27 12:22)
Copyright (c) 2016-2018 The polarphp foundation (https://polar.foundation)
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies
Selamat, Anda telah berhasil mengkompilasi runtime environment polarphp
. Saat mengkompilasi gambar, kami menempatkan skrip pengujian di folder ~/temp/
if ( function_exists ( ' phpretrieve_version_str ' )) {
echo " version str: " . php retrieve_version_str () . "n" ;
}
if ( function_exists ( ' phpretrieve_major_version ' )) {
echo " major version: " . php retrieve_major_version () . "n" ;
}
if ( function_exists ( ' phpretrieve_minor_version ' )) {
echo " minor version: " . php retrieve_minor_version () . "n" ;
}
if ( function_exists ( ' phpretrieve_patch_version ' )) {
echo " patch version: " . php retrieve_patch_version () . "n" ;
}
Anda dapat menjalankan perintah berikut:
polar ~/temp/main.php
Jika tidak ada kesalahan, Anda akan mendapatkan output berikut:
version str: polarphp 0.0.1-git
major version: 0
minor version: 0
patch version: 1
Terima kasih telah menguji polarphp
. Jika Anda memiliki pertanyaan, silakan pindai kode QR WeChat di bawah untuk bergabung dalam komunikasi grup.
Saat ini, kami hanya menargetkan pengguna di Tiongkok, jadi kami menggunakan grup WeChat dan QQ
untuk berkomunikasi. Di bawah ini adalah kode QR. Siswa yang tertarik dapat memindai kode untuk bergabung:
PS: Harap sebutkan tujuan kunjungan Anda saat memindai kode QR, misalnya: mempelajari
polarphp
atau penggemarPHP
polarphp
melakukan pengembangan sekunder di atas proyek bahasa php
dan mematuhi perjanjian proyek php
============