อ่านเอกสารเวอร์ชันภาษาอังกฤษ: อังกฤษ
อ่านเอกสารนี้ในภาษาอื่น: อังกฤษ, จีนตัวย่อ
ด้วยการเพิ่มขึ้นอย่างแข็งแกร่งของ 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 สำหรับการย้ายโครงการ LLVMpolarphp ให้สมบูรณ์โดยใช้เฟรมเวิร์กการทดสอบการถดถอย phplitpolarvm และจัดทำโครงสร้างพื้นฐานของเครื่องเสมือนให้สมบูรณ์polarphp AST ให้กับชุดคำสั่งให้เสร็จสมบูรณ์ และไม่ต้องกำหนดเลเยอร์ IR ในขณะนี้phplit เพื่อทดสอบโมดูลที่คอมไพล์ทั้งหมดตั้งแต่โครงสร้างภาษาไปจนถึงชุดคำสั่งGC ในตัวของ PHPPHP 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 สำหรับรายละเอียด โปรดดู: ข้อตกลงโครงการ
-