La fin de la ligne pour PHP sous Windows

PHP existe peut-être depuis un certain temps, mais c'est toujours un outil de développement Web important. S'appuyant sur un modèle déclaratif de programmation, PHP étend la syntaxe HTML familière avec des commandes et des fonctions supplémentaires, en ajoutant une programmation en ligne et des extensions à votre contenu Web. Ce modèle en a fait un élément important de nombreux systèmes de gestion de contenu, fournissant un cadre pour la gestion du contenu fourni par la base de données et le formatage des pages à l'aide de modèles dynamiques.

L'avenir de PHP sur Windows

Beaucoup de ces CMS s'exécutent à l'intérieur de pare-feu d'entreprise, hébergeant des intranets et des outils de collaboration internes. Il n'est donc pas surprenant de voir que les versions Windows officielles de PHP proviennent de Microsoft, l'un de ses projets open source les plus anciens.

Mais toutes les bonnes choses prennent fin, et Microsoft a récemment annoncé qu'il ne produirait pas de version officielle de PHP 8 pour Windows. Jusqu'à présent, il fournissait des versions de Windows sous forme de binaires et de code source sur windows.php.net pour IIS et d'autres serveurs Web Windows. Cependant, cela s'arrêtera à l'avenir, car l'équipe qui fournit les builds Windows PHP passe à d'autres projets au fur et à mesure que PHP 7 traverse son cycle de vie de support.

Que suggère ce changement de politique pour l'avenir de PHP sur Windows? Et, plus important encore, quelles sont les alternatives si vous voulez profiter de l'occasion pour changer votre façon de travailler?

Oui, il y a un avenir

Premièrement, et le plus crucial, PHP pour Windows ne disparaîtra pas. Il est très clair qu'il existe une demande plus que suffisante pour que quelqu'un continue à créer et à distribuer une version Windows de PHP au-delà de PHP 7. Microsoft ne contribuera pas directement aux ressources et aux serveurs pour les versions, mais plus que probablement, il fera don de licences et de serveurs à le projet PHP pour s'assurer qu'au minimum, une version Windows sortira du processus automatisé PHP CI / CD (intégration continue / livraison continue).

Ce sera à l'équipe PHP de développer un ensemble de compétences Windows pour s'assurer que les bons tests sont exécutés et que le code est correctement optimisé, en s'assurant que les bons paramètres de build sont utilisés dans Visual Studio. Bien que cela ne devrait pas être trop difficile, ce n'est pas la même chose que d'avoir des ressources dédiées de l'une des plus grandes sociétés de logiciels au monde.

Alternativement, il existe d'autres versions Windows de PHP, construites par un mélange de sociétés tierces avec leurs propres outils PHP et de volontaires construisant à partir de la base de code open source. Si vous voulez du support, vous devriez probablement choisir une version PHP commerciale, alors que les versions ouvertes sont idéales pour créer un environnement de développement PHP Windows.

Utilisation de WSL pour le développement PHP

Si vous recherchez des alternatives, la plate-forme d'applications hébergée dans le cloud Azure App Service de Microsoft prend en charge PHP, bien qu'ici, elle s'exécute sur Linux, pas sur Windows. Si vous créez du code pour cela, vous souhaiterez probablement une version Linux de PHP au cœur de votre processus de développement, en le ciblant avec les outils d'espace de travail distant de Visual Studio Code. Il existe de nombreuses extensions PHP différentes pour Code, du support IntelliSense aux outils de débogage et de formatage de code.

L'installation de PHP dans WSL (sous-système Windows pour Linux) est assez simple, avec toutes les dépendances dont vous avez besoin installées via le gestionnaire de packages choisi. L'installation de PHP dans une instance Ubuntu WSL installera et configurera le serveur Web Apache, ce qui vous permettra de passer rapidement de l'écriture et du test du code à son exécution sur un serveur Web de production. L'installation prend quelques minutes, tout est prêt à fonctionner dans le terminal Windows et accessible à partir de Visual Studio Code exécuté dans Windows. Peu importe que vous utilisiez WSL 1 ou WSL 2, vous obtenez à peu près la même expérience avec les deux versions.

Avec une instance PHP Linux exécutée sur votre machine de développement, vous pouvez désormais créer une application PHP et la tester avant de la déployer sur Azure App Services ou sur un serveur Web hébergé. Si vous utilisez WSL 2, ce nouveau modèle de développement peut être utilisé avec les dernières versions de Docker Containers, en utilisant votre PC de développement pour créer du code dans WSL, puis le conditionner en tant que conteneur pour un déploiement plus facile sur les serveurs, soit dans votre réseau, un service d'hébergement, ou le cloud public.

L'utilisation de PHP sous Linux via WSL est probablement l'option la moins perturbatrice pour le développement PHP sous Windows, mais une approche alternative pourrait être de travailler avec un modèle de développement Web plus moderne. Vous avez beaucoup de choix: restez dans l'écosystème Microsoft en utilisant ASP.NET ou passez à un modèle multiplateforme basé sur le développement de site statique en utilisant des approches telles que Jamstack.

Nouveaux modèles de développement: .NET Blazor et Azure Static Web Apps

Une chose est claire: le modèle déclaratif de développement d'applications Web utilisé par PHP ne disparaît pas. Un argument plausible en faveur de la fin du support officiel de Microsoft pour PHP est que les nouvelles technologies Microsoft peuvent vous offrir des options de développement similaires, tout en utilisant moins de ressources et en fonctionnant toujours sur plusieurs plates-formes, et avec une feuille de route prenant en charge les nouvelles technologies Web.

ASP.NET Core est un environnement multiplateforme qui utilise du code .NET côté serveur pour fournir des composants HTML et JavaScript. S'appuyant sur le runtime portable .NET Core, la syntaxe Razor d'ASP.NET Core offre des techniques de programmation déclaratives similaires à PHP. Cependant, la grande différence vient lorsque vous l'utilisez en conjonction avec le modèle de programmation Blazor côté serveur.

En se concentrant sur les applications Web à page unique, Blazor Server exécute le code ASP.NET sur votre serveur Web, en compilant le contenu en composants Web pré-rendus avec une connexion Signal R entre le contenu du navigateur et les services principaux. Cette approche a l'avantage de nécessiter relativement peu de bande passante, au détriment d'une certaine latence avec une connexion aller-retour entre le serveur et le navigateur nécessaire à chaque interaction. Le pré-rendu du contenu de cette manière peut aider les utilisateurs à sentir qu'une application est plus réactive, avec des interactions actualisant les composants de l'interface utilisateur.

Le récent lancement d'Azure Static Web Apps dans le cadre d'Azure App Services a apporté une nouvelle façon de créer et d'utiliser du contenu Web dans Azure et Windows. En créant des sites localement à l'aide de Visual Studio Code et en hébergeant du contenu dans GitHub, une action GitHub personnalisée déploie le contenu mis à jour sur Azure. Les sites sont créés à l'aide de connexions HTML, JavaScript côté client et API aux bases de données et à d'autres services.

Comme Blazor et PHP, Jamstack adopte une approche de conception de sites basée sur des modèles, bien qu'elle soit moins adaptée aux CMS traditionnels et plus au contenu basé sur des fichiers qui peut être distribué via des réseaux de diffusion de contenu, en les utilisant pour mettre en cache le contenu plus près de vos utilisateurs. Vous pouvez créer un site Azure Static Web Apps basé sur le contenu à l'aide des techniques Jamstack, mais vous devez être prêt à reconstruire l'intégralité du site chaque fois que vous publiez un nouveau contenu.

La fin du support de Microsoft pour sa propre version de PHP n'est pas un désastre. C'est un signe que les priorités de Redmond ont changé; Les technologies telles que WSL et Linux hébergé par Azure offrent des chemins alternatifs pour créer et exécuter du code PHP.

C'est également un signe que d'autres approches plus modernes du développement d'applications Web peuvent être plus étroitement alignées sur le chemin actuel centré sur le cloud de Microsoft, en s'appuyant sur .NET et sur des techniques de développement d'applications modernes. Quoi que vous décidiez de faire, vous avez de nombreuses options.