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:
polarphp
lernen oderPHP
Enthusiasten
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
===========================