Lesen Sie die englische Version dieses Dokuments: Englisch
Lesen Sie dieses Dokument in anderen Sprachen: Englisch, vereinfachtes Chinesisch .
Mit dem starken Aufstieg von Go und NodeJS ist der Marktanteil von PHP allmählich zurückgegangen, aber PHP bleibt offiziell immer noch im Bereich der Web . Manche Dinge werden immer schwieriger zu halten, je mehr sie versuchen zu halten. polarphp nutzt die relevanten Funktionen von NodeJS und Go , um zendVM neu zu kapseln, einige der alten, aufgegebenen Funktionen und starken Web PHP zu entfernen und einen neuen Satz von Laufzeit-Frameworks libpdk zu implementieren, um PHP Sprache zu einer wirklich universellen Skriptsprache zu machen und sie zu stärken PHP mit asynchroner Programmierung, Coroutinen, Threads, integrierter unicode Unterstützung, Standard-Datei IO und anderen Funktionen, die es PHP -Programmierern ermöglichen, nicht nur web zu erstellen, sondern auch ruhig mit echten serverseitigen Anwendungen umzugehen. polarphp ist keine neue Sprache, sondern ein neuer Compiler und eine neue Laufzeit für PHP Sprache zusätzlich zur offiziellen.
PHP -Sprachstandards und Entfernung veralteter Sprachfunktionen unicode Zeichenstandards Aufgrund begrenzter Entwicklungsressourcen wird der Entwicklungsplan vorläufig wie folgt festgelegt:
PHP Compiler-Frontendlit Test-Framework für die Transplantation LLVM Projektspolarphp Compiler-Frontends mit dem phplit Regressionstest-Frameworkpolarvm und vervollständigen Sie die Infrastruktur der virtuellen Maschinepolarphp AST zum Befehlssatz ab und definieren Sie die IR-Schicht vorerst nicht.phplit um alle kompilierten Module von der Sprachstruktur bis zum Befehlssatz zu testenGC von PHP verwendenPHP Sprachstandardbibliothek libpdk ( cpp Teil).polarphp in möglichst wenigen Schritten zu installieren.PHP Standardbibliothek zu implementieren (implementiert mit PHP Code mit zugrunde liegender libpdk Unterstützung). polarphp Projektbibliothek 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
Zu diesem Zeitpunkt beginnt das Skript mit der Kompilierung verwandter Bilder, was lange dauert. Bitte warten Sie geduldig. Warten Sie, bis die Kompilierung abgeschlossen ist, und führen Sie Folgendes aus:
docker images
Bitte bestätigen Sie zu diesem Zeitpunkt, dass die Ausgabe das folgende Bild enthält:
Wenn es kein Problem gibt, beginnen wir zu testen, ob polarphp im Spiegel normal läuft.
docker run --rm -it polarphp_debug
Geben Sie nach dem Betreten des Containers unser polarphp Befehlszeilenprogramm ein
polar --version
Wenn Sie die folgende Ausgabe erhalten:
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
Herzlichen Glückwunsch, Sie haben die polarphp Laufzeitumgebung erfolgreich kompiliert. Beim Kompilieren des Bildes haben wir ein Testskript im Ordner ~/temp/ abgelegt
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" ;
}Sie können den folgenden Befehl ausführen:
polar ~/temp/main.php
Wenn keine Fehler vorliegen, erhalten Sie die folgende Ausgabe:
version str: polarphp 0.0.1-git
major version: 0
minor version: 0
patch version: 1
Vielen Dank, dass Sie polarphp getestet haben. Wenn Sie Fragen haben, scannen Sie bitte den WeChat-QR-Code unten, um an der Gruppenkommunikation teilzunehmen.
Derzeit richten wir uns nur an Benutzer in China, daher nutzen wir WeChat- und QQ Gruppen zur Kommunikation. Unten finden Sie den QR-Code, um beizutreten:
PS: Bitte geben Sie beim Scannen des QR-Codes den Zweck Ihres Besuchs an, zum Beispiel:
polarphplernen oderPHPEnthusiasten
polarphp führt die Sekundärentwicklung zusätzlich zum php Sprachprojekt durch und hält sich an die php Projektvereinbarung. Weitere Informationen finden Sie unter: Projektvereinbarung
===========================