อ่านเอกสารเวอร์ชันภาษาอังกฤษ: อังกฤษ
อ่านเอกสารนี้ในภาษาอื่น: อังกฤษ, จีนตัวย่อ
ด้วยการเพิ่มขึ้นอย่างแข็งแกร่งของ Go
และ NodeJS
ส่วนแบ่งการตลาดของ PHP
จึงค่อยๆ ถูกกัดกร่อน แต่ PHP
อย่างเป็นทางการยังคงยึดติดกับการเขียนโปรแกรม Web
บางสิ่งกลายเป็นเรื่องยากมากขึ้นที่จะยึดมั่นในสิ่งที่พวกเขาพยายามจะยึดมั่นต่อไป polarphp
ดึงเอาฟีเจอร์ที่เกี่ยวข้องของ NodeJS
และ Go
เพื่อสรุป zendVM
อีกครั้ง ลบฟีเจอร์เก่าๆ ที่ถูกละทิ้ง PHP
และคุณลักษณะ Web
ที่แข็งแกร่ง และใช้ชุดรันไทม์เฟรมเวิร์กชุดใหม่ libpdk
เพื่อสร้างภาษา PHP
ให้เป็นภาษาสคริปต์สากลอย่างแท้จริง ซึ่งช่วยเพิ่มขีดความสามารถ PHP
พร้อมการเขียนโปรแกรมแบบอะซิงโครนัส, coroutines, เธรด, การสนับสนุน unicode
ในตัว, ไฟล์มาตรฐาน IO
และคุณสมบัติอื่น ๆ ช่วยให้โปรแกรมเมอร์ PHP
ไม่เพียงแต่ทำ web
แอปพลิเคชันเท่านั้น แต่ยังเผชิญกับแอปพลิเคชันฝั่งเซิร์ฟเวอร์จริงอย่างใจเย็น polarphp
ไม่ใช่ภาษาใหม่ แต่เป็นคอมไพเลอร์และรันไทม์ใหม่สำหรับภาษา PHP
นอกเหนือจากภาษาทางการ
PHP
ล่าสุดและลบคุณสมบัติภาษาที่ล้าสมัย unicode
ในตัว เนื่องจากทรัพยากรในการพัฒนามีจำกัด แผนการพัฒนาจึงถูกกำหนดเบื้องต้นดังนี้:
PHP
ของคุณเองlit
สำหรับการย้ายโครงการ LLVM
polarphp
ให้สมบูรณ์โดยใช้เฟรมเวิร์กการทดสอบการถดถอย phplit
polarvm
และจัดทำโครงสร้างพื้นฐานของเครื่องเสมือนให้สมบูรณ์polarphp
AST ให้กับชุดคำสั่งให้เสร็จสมบูรณ์ และไม่ต้องกำหนดเลเยอร์ IR ในขณะนี้phplit
เพื่อทดสอบโมดูลที่คอมไพล์ทั้งหมดตั้งแต่โครงสร้างภาษาไปจนถึงชุดคำสั่งGC
ในตัวของ PHP
PHP
libpdk
(ส่วน cpp
)polarphp
ในจำนวนขั้นตอนขั้นต่ำPHP
ที่ทำงานได้อย่างสมบูรณ์ (ใช้งานโดยใช้โค้ด PHP
พร้อมการสนับสนุนพื้นฐาน 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
ขณะนี้สคริปต์เริ่มรวบรวมรูปภาพที่เกี่ยวข้องซึ่งใช้เวลานาน โปรดอดทนรอ รอให้การคอมไพล์เสร็จสิ้นและคุณรัน:
docker images
ในขณะนี้ โปรดยืนยันว่ามีรูปภาพต่อไปนี้ในเอาต์พุต:
หากไม่มีปัญหาใดๆ เราก็เริ่มทดสอบว่า polarphp
ทำงานปกติในมิเรอร์หรือไม่
docker run --rm -it polarphp_debug
หลังจากเข้าสู่คอนเทนเนอร์แล้ว ให้เข้าสู่โปรแกรมบรรทัดคำสั่ง polarphp
ของเรา
polar --version
หากคุณได้รับผลลัพธ์ต่อไปนี้:
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
ขอแสดงความยินดี คุณได้คอมไพล์สภาพแวดล้อมรันไทม์ polarphp
สำเร็จแล้ว เมื่อรวบรวมรูปภาพ เราได้วางสคริปต์ทดสอบไว้ใน ~/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" ;
}
คุณสามารถรันคำสั่งต่อไปนี้:
polar ~/temp/main.php
หากไม่มีข้อผิดพลาด คุณจะได้รับผลลัพธ์ดังต่อไปนี้:
version str: polarphp 0.0.1-git
major version: 0
minor version: 0
patch version: 1
ขอบคุณสำหรับการทดสอบ polarphp
หากคุณมีคำถามใด ๆ โปรดสแกนรหัส QR ของ WeChat ด้านล่างเพื่อเข้าร่วมการสื่อสารกลุ่ม
ปัจจุบันเรากำหนดเป้าหมายเฉพาะผู้ใช้ในประเทศจีน ดังนั้นเราจึงใช้กลุ่ม WeChat และ QQ
ในการสื่อสาร ด้านล่างคือรหัส QR นักเรียนที่สนใจสามารถสแกนรหัสเพื่อเข้าร่วม:
PS: โปรดระบุวัตถุประสงค์ในการเยี่ยมชมของคุณเมื่อสแกนโค้ด QR เช่น การเรียนรู้
polarphp
หรือผู้ที่ชื่นชอบPHP
polarphp
ดำเนินการพัฒนาขั้นที่สองนอกเหนือจากโครงการภาษา php
และปฏิบัติตามข้อตกลงโครงการ php
สำหรับรายละเอียด โปรดดู: ข้อตกลงโครงการ
-