Exécutez PHP sur .NET avec PeachPie

L’une des choses les plus intéressantes à propos de .NET est son extensibilité. Ce n’est pas seulement une plate-forme de développement Microsoft avec des frameworks et des langages axés sur Windows. Même dans les premiers jours de la plate-forme, des outils tels que IronRuby et IronPython ont apporté des langages open source populaires au CLR, tandis que des projets tels que Unity ont été construits sur .NET, ajoutant des bibliothèques et des services supplémentaires.

Au cœur de .NET se trouve le Common Language Runtime open source, CoreCLR. Il s’agit d’une combinaison d’un compilateur juste-à-temps spécifique à l’architecture, RyuJIT, et d’un interpréteur pour le CIL (Common Intermediate Language) du projet. Soutenus par des normes ouvertes, les langages .NET compilent en CIL, le CLR gérant la compilation au moment de l’exécution. Il est même possible de compiler directement des binaires spécifiques à l’architecture construits autour de CoreRT, un environnement d’exécution natif.

L’environnement basé sur des normes permet aux tiers d’apporter relativement facilement leurs propres langages et environnements à .NET, prenant en charge tout, du jeu 3D avec Unity à la mise en œuvre par PeachPie de l’environnement de développement Web PHP familier.

Présentation de PeachPie

PeachPie est particulièrement intéressant, car PHP reste un moyen populaire de créer et de fournir rapidement des applications Web. Conçu pour être compatible avec la version PHP standard, il lève et déplace le code PHP vers les environnements ASP.NET Core tels qu’Azure, compilant le code PHP en CIL natif .NET plutôt que d’utiliser les outils PHP standard. Au lieu d’exécuter plusieurs environnements, vous en exécutez un, mais vous pouvez choisir différents outils de développement pour créer et déployer des pages et des applications.

Vous pouvez intégrer les deux technologies en implémentant ASP.NET C# aux côtés de PeachPie PHP dans le même projet. Le travail effectué pour créer des sites dans des technologies telles que Blazor peut être appelé directement depuis PHP et vice versa. Les bibliothèques et fonctions PHP existantes sont visibles par votre code C# et vous pouvez les appeler à l’aide de constructions familières. Une option de support commercial de l’équipe de développement signifie que vous n’êtes pas seul ou que vous avez du mal à obtenir le support de la communauté.

Cela rend des outils comme PeachPie particulièrement utiles : vous pouvez apporter des ressources et des applications existantes à une nouvelle plate-forme sans apporter de modifications majeures pendant que vos développeurs se familiarisent avec les nouvelles technologies. C’est un regard intéressant sur la façon dont les décisions architecturales prises pour un langage qui cible son propre interprète doivent être traduites dans un tout nouvel écosystème. Comme il s’agit d’un projet open source avec une licence Apache 2.0, vous pouvez consulter le code et envoyer des demandes d’extraction.

Traduire des concepts de bas niveau peut être difficile, surtout sans correspondance directe entre les deux façons de travailler. Dans le blog PeachPie, l’équipe de conception montre comment elle a réussi la transition entre un concept relativement basique en PHP (déclarer une interface explicite) et le code CIL qui en résulte. Il y a aussi le problème de passer d’un environnement faiblement typé comme PHP à un environnement fortement typé par défaut.

En pratique, bien sûr, une grande partie des fonctionnalités de PHP peut être gérée par des fonctions de bibliothèque. L’approche de PHP pour implémenter des opérations en tant que fonctions simplifie les tâches exécutées par PeachPie, car une fonction PHP peut être mappée directement à une bibliothèque .NET. Tout ce qui est nécessaire est que PeachPie agisse comme une boîte noire, appelle une fonction .NET lorsqu’un équivalent PHP est attendu et renvoie les bonnes sorties pour les entrées actuelles. Il peut également mapper des constructions d’interface utilisateur, telles que des grilles et des formulaires, aux contrôles ASP.NET équivalents.

Code du bâtiment avec PeachPie

La prise en main de PeachPie est rapide ; il s’installe en tant qu’extension Visual Studio à partir de Visual Studio Marketplace, en ajoutant un ensemble de modèles à la boîte de dialogue Nouveau projet. Vous pouvez l’utiliser pour commencer à créer une application ASP.NET compatible PHP ou une nouvelle bibliothèque afin que votre code principal existant puisse être appelé à partir de PHP. Une fois que vous ouvrez un nouveau projet, PeachPie téléchargera ses dépendances et vous pourrez commencer à coder. Lorsque vous utilisez Visual Studio, vous avez accès à tous ses outils, y compris IntelliSense et le débogueur intégré. PeachPie compile les sites et les exécute comme vous exécutez ASP.NET, vous pouvez donc utiliser les compétences et les outils de débogage .NET existants de F5 et des services pour travailler avec des sites distants sur Azure ou vos propres serveurs Web. En prime, l’utilisation d’Azure DevOps est prise en charge, garantissant que vos sites font partie de votre pipeline CI/CD (intégration continue et livraison continue).

Le développement .NET moderne n’a pas besoin de Visual Studio, vous pouvez donc travailler avec PeachPie directement à partir de la ligne de commande à l’aide du SDK .NET. Téléchargez les modèles PeachPie à partir de l’application CLI dotnet : dotnet new -i Peachpie.Templates::* Cela installe les modèles pour créer des applications ASP.NET, des bibliothèques de classes et des applications console. Fait intéressant, il est même possible d’utiliser PHP pour créer des applications Blazor WebAssembly et des applications PHP WebAssembly, permettant à vos utilisateurs d’exécuter du code PHP à des vitesses natives dans leurs navigateurs.

Vous pouvez maintenant commencer à créer un site PHP en utilisant dotnet new web -lang PHP. Cela crée deux répertoires : Website, avec le code de votre site, et Server, qui est le point d’entrée de l’application Web. Pour lancer votre site, changez simplement le répertoire en répertoire du serveur et tapez dotnet run. Vous pouvez ensuite accéder à localhost et au port détaillé dans la vue de ligne de commande ASP.NET.

Cette approche vous permet de choisir votre outil de développement Web pour modifier le code de votre site. Le fichier initial index.php contient une application PHP simple pour afficher du texte dans un navigateur afin que vous puissiez tester le fonctionnement de base de PeachPie. Tout code PHP porté sur votre site peut être copié ici pour être testé avant d’être téléchargé sur votre hébergeur ASP.NET.

Utiliser .NET pour emmener PHP au-delà du Web

Comme PeachPie fait de PHP un langage .NET, vous n’êtes pas limité à la création d’applications Web. Il est désormais possible de prendre vos compétences en PHP et de les utiliser pour créer du code .NET autonome, par exemple en l’utilisant dans des applications console. L’approche de programmation déclarative de PHP peut aider à combler le fossé entre le développement low-code et les applications à grande échelle, permettant d’utiliser du code PHP rapide comme modules d’application et bibliothèques.

Il y a beaucoup à aimer à propos de PeachPie. Rendre PHP interopérable avec .NET est un objectif louable. Une grande partie du code PHP est encore utilisée, et de nombreuses fonctionnalités dans ASP.NET moderne peuvent aider à alimenter ce code PHP tout en permettant aux développeurs .NET d’ajouter des intégrations d’entreprise approfondies aux frontaux PHP existants en créant des fonctions C # et en les appelant à partir de PHP. Mélanger et assortir des outils comme celui-ci donne aux développeurs PHP un chemin vers le développement ASP.NET et ses options de code en ligne Razor, un modèle de développement hybride efficace.

Le résultat est un outil qui montre les capacités de la plate-forme .NET, allant au-delà des propres langages et outils de Microsoft. Dans le même temps, les architectes et les responsables du développement peuvent optimiser les ressources disponibles sur une plate-forme unique sans nécessiter de formation coûteuse et chronophage. L’ancien code peut s’exécuter sur de nouveaux systèmes, et le nouveau code s’appuie sur des décennies d’expérience PHP. C’est un gagnant-gagnant pour tout le monde.

Copyright © 2022 IDG Communications, Inc. Tous droits réservés.

Leave a Comment

Your email address will not be published. Required fields are marked *