Lire la version anglaise de ce document : Anglais
Lire ce document dans d'autres langues : anglais, chinois simplifié .
Avec la forte montée en puissance de Go
et NodeJS
, la part de marché de PHP
s'est progressivement érodée, mais PHP
reste officiellement cantonné au domaine de la programmation Web
. Certaines choses deviennent plus difficiles à conserver à mesure qu'ils essaient de s'y accrocher. polarphp
s'appuie sur les fonctionnalités pertinentes de NodeJS
et Go
pour ré-encapsuler zendVM
, supprime certaines des anciennes fonctionnalités abandonnées et des attributs Web
puissants PHP
, et implémente un nouvel ensemble de framework d'exécution libpdk
pour construire PHP
dans un langage de script véritablement universel, permettant PHP
avec programmation asynchrone, coroutines, threads, prise en charge unicode
intégrée, fichiers IO
standard et autres fonctionnalités, permettant aux programmeurs PHP
non seulement de créer des applications web
, mais également d'affronter sereinement de véritables applications côté serveur. polarphp
n'est pas un nouveau langage, mais un nouveau compilateur et runtime pour PHP
en plus du langage officiel.
PHP
et supprimant les fonctionnalités de langage obsolètes unicode
En raison des ressources de développement limitées, le plan de développement est provisoirement défini comme suit :
PHP
lit
pour la transplantation du projet LLVM
polarphp
à l'aide du framework de tests de régression phplit
polarvm
et compléter l'infrastructure de la machine virtuellepolarphp
AST dans le jeu d'instructions et ne définissez pas la couche IR pour le moment.phplit
pour tester tous les modules compilés, de la structure du langage au jeu d'instructionsGC
intégré de PHP
PHP
libpdk
(partie cpp
)polarphp
en un minimum d’étapes.PHP
entièrement fonctionnelle (implémentée à l'aide de code PHP
avec le support sous-jacent 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
À ce stade, le script commence à compiler les images associées, ce qui prend beaucoup de temps. Veuillez patienter. Attendez la fin de la compilation et exécutez :
docker images
À ce stade, veuillez confirmer que l'image suivante figure dans la sortie :
S'il n'y a pas de problème, nous commençons à tester si polarphp
fonctionne normalement dans le miroir.
docker run --rm -it polarphp_debug
Après être entré dans le conteneur, entrez notre programme de ligne de commande polarphp
polar --version
Si vous obtenez le résultat suivant :
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
Félicitations, vous avez compilé avec succès l'environnement d'exécution polarphp
. Lors de la compilation de l'image, nous avons placé un script de test dans le dossier ~/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" ;
}
Vous pouvez exécuter la commande suivante :
polar ~/temp/main.php
S'il n'y a aucune erreur, vous obtiendrez le résultat suivant :
version str: polarphp 0.0.1-git
major version: 0
minor version: 0
patch version: 1
Merci d'avoir testé polarphp
. Si vous avez des questions, veuillez scanner le code QR WeChat ci-dessous pour rejoindre la communication du groupe.
À l'heure actuelle, nous ciblons uniquement les utilisateurs en Chine, nous utilisons donc les groupes WeChat et QQ
pour communiquer. Vous trouverez ci-dessous le code QR. Les étudiants intéressés peuvent scanner le code pour rejoindre :
PS : Merci d'indiquer votre but de visite lors du scan du QR code, par exemple : apprentissage
polarphp
ou passionnésPHP
polarphp
effectue un développement secondaire en plus du projet de langage php
et respecte l'accord du projet php
. Pour plus de détails, veuillez consulter : Accord de projet.
===========================