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 :
PHPlit pour la transplantation du projet LLVMpolarphp à l'aide du framework de tests de régression phplitpolarvm 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 PHPPHP 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
polarphpou 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.
===========================