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 LLVMpolarphp menggunakan kerangka pengujian regresi phplitpolarvm 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 PHPPHP 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
polarphpatau penggemarPHP
polarphp melakukan pengembangan sekunder di atas proyek bahasa php dan mematuhi perjanjian proyek php
============