Executeu PHP a .NET amb PeachPie

Una de les coses més interessants de .NET és la seva extensibilitat. No és només una plataforma de desenvolupament només de Microsoft amb marcs i llenguatges centrats en Windows. Fins i tot en els primers dies de la plataforma, eines com IronRuby i IronPython van portar llenguatges de codi obert populars al CLR, mentre que projectes com Unity es van construir a sobre de .NET, afegint biblioteques i serveis addicionals.

Al cor de .NET hi ha el Common Language Runtime de codi obert, CoreCLR. Aquesta és una combinació d’un compilador just-in-time específic per a l’arquitectura, RyuJIT, i un intèrpret per al CIL (llenguatge comú intermedi) del projecte. Amb el suport d’estàndards oberts, els llenguatges .NET es compilen a CIL, amb el CLR que gestiona la compilació en temps d’execució. Fins i tot hi ha l’opció de compilar directament a binaris específics de l’arquitectura construïts al voltant de CoreRT, un entorn d’execució natiu.

L’entorn basat en estàndards fa que sigui relativament fàcil per a tercers portar els seus propis idiomes i entorns a .NET, donant suport a tot, des de jocs en 3D amb Unity fins a la implementació de PeachPie del familiar entorn de desenvolupament web PHP.

Presentació de PeachPie

PeachPie és especialment interessant, ja que PHP segueix sent una forma popular de crear i lliurar aplicacions web ràpidament. Destinat a ser compatible amb l’idioma amb la versió estàndard de PHP, eleva i canvia el codi PHP a entorns ASP.NET Core com ara Azure, compilant codi PHP a CIL natiu de .NET en lloc d’utilitzar les eines estàndard de PHP. En lloc d’executar diversos entorns, n’executeu un, però podeu triar diferents eines de desenvolupament per crear i desplegar pàgines i aplicacions.

Podeu integrar les dues tecnologies, implementant ASP.NET C# juntament amb PeachPie PHP en el mateix projecte. El treball realitzat per construir llocs en tecnologies com Blazor es pot cridar directament des de PHP i viceversa. Les biblioteques i funcions de PHP existents són visibles al vostre codi C# i podeu trucar-les mitjançant construccions familiars. Una opció de suport comercial de l’equip de desenvolupament vol dir que no esteu pel vostre compte ni teniu problemes per obtenir suport de la comunitat.

Això fa que eines com PeachPie siguin especialment útils: podeu portar els recursos i les aplicacions existents a una plataforma nova sense fer grans canvis mentre els vostres desenvolupadors s’adapten a les noves tecnologies. És una visió interessant de com s’han de traduir les decisions arquitectòniques que es prenen per a un llenguatge dirigit al seu propi intèrpret a un ecosistema completament nou. Com que es tracta d’un projecte de codi obert amb una llicència Apache 2.0, podeu consultar el codi i enviar sol·licituds d’extracció.

Traduir conceptes de baix nivell pot ser difícil, sobretot sense un mapa directe entre les dues maneres de treballar. Al blog de PeachPie, l’equip de disseny mostra com han gestionat la transició entre un concepte relativament bàsic en PHP (declarant una interfície explícita) i el codi CIL resultant. També hi ha el problema de passar d’un entorn d’escriptura fluixa com PHP a un que està ben escrit per defecte.

A la pràctica, per descomptat, gran part de la funcionalitat de PHP es pot gestionar amb funcions de biblioteca. L’enfocament de PHP per implementar operacions com a funcions simplifica les tasques que executa PeachPie, ja que una funció PHP es pot assignar directament a una biblioteca .NET. Tot el que cal és que PeachPie actuï com una caixa negra, cridi a una funció .NET quan s’espera un equivalent PHP i retorni les sortides correctes per a les entrades actuals. De manera similar, pot mapar construccions d’interfície d’usuari, com ara quadrícules i formularis, als controls ASP.NET equivalents.

Codi de construcció amb PeachPie

Començar amb PeachPie és ràpid; s’instal·la com a extensió de Visual Studio des del Visual Studio Marketplace, afegint un conjunt de plantilles al diàleg Nou projecte. Podeu utilitzar això per començar a crear una aplicació ASP.NET habilitat per PHP o una biblioteca nova perquè el vostre codi de fons existent es pugui cridar des de PHP. Un cop obriu un projecte nou, PeachPie baixarà les seves dependències i podreu començar a codificar. Quan utilitzeu Visual Studio, teniu accés a totes les seves eines, inclosos IntelliSense i el depurador integrat. PeachPie compila llocs i els executa igual que feu servir ASP.NET, de manera que podeu utilitzar les habilitats i les eines de depuració de .NET existents de F5 i serveis per treballar amb llocs remots a Azure o als vostres propis servidors web. Com a avantatge addicional, hi ha suport per utilitzar Azure DevOps, assegurant-vos que els vostres llocs formen part del vostre pipeline CI/CD (integració contínua i lliurament continu).

El desenvolupament .NET modern no necessita Visual Studio, de manera que podeu treballar amb PeachPie directament des de la línia d’ordres mitjançant l’SDK .NET. Baixeu les plantilles de PeachPie des de l’aplicació CLI de dotnet: dotnet new -i Peachpie.Templates::* Això instal·la les plantilles per crear aplicacions ASP.NET, biblioteques de classes i aplicacions de consola. Curiosament, fins i tot hi ha l’opció d’utilitzar PHP per crear aplicacions Blazor WebAssembly i aplicacions PHP WebAssembly, cosa que permet als usuaris executar codi PHP a velocitats natives als seus navegadors.

Ara podeu començar a crear un lloc PHP mitjançant dotnet new web -lang PHP. Això crea dos directoris: Lloc web, amb el codi del vostre lloc, i Servidor, que és el punt d’entrada de l’aplicació web. Per llançar el vostre lloc, simplement canvieu el directori al directori del servidor i escriviu dotnet run. A continuació, podeu navegar a localhost i al port detallat a la vista de línia d’ordres ASP.NET.

Aquest enfocament us permet triar la vostra eina de desenvolupament web per editar el codi del vostre lloc. El fitxer index.php inicial conté una aplicació PHP senzilla per mostrar text en un navegador perquè pugueu provar el funcionament bàsic de PeachPie. Qualsevol codi PHP portat al vostre lloc es pot copiar aquí per provar-lo abans de pujar-lo al vostre amfitrió ASP.NET.

Utilitzant .NET per portar PHP més enllà del web

Com que PeachPie fa que PHP sigui un llenguatge .NET, en realitat no esteu limitats a crear aplicacions web. Ara és possible aprofitar les vostres habilitats PHP i utilitzar-les per crear codi .NET autònom, per exemple, utilitzant-lo en aplicacions de consola. L’enfocament de programació declaratiu de PHP pot ajudar a superar la bretxa entre el desenvolupament de codi baix i les aplicacions a gran escala, permetent que el codi PHP ràpid s’utilitzi com a mòduls i biblioteques d’aplicacions.

Hi ha molt a agradar de PeachPie. Fer que PHP sigui interoperable amb .NET és un objectiu digne. Encara s’està utilitzant molt de codi PHP i moltes capacitats de l’ASP.NET modern poden ajudar a potenciar aquest codi PHP alhora que permeten als desenvolupadors de .NET afegir integracions empresarials profundes a les interfícies PHP existents mitjançant la creació de funcions C# i cridant-les des de PHP. Barrejar i combinar eines com aquesta ofereix als desenvolupadors de PHP un camí cap al desenvolupament d’ASP.NET i les seves opcions de codi en línia Razor, un model de desenvolupament híbrid eficaç.

El resultat és una eina que mostra les capacitats de la plataforma .NET, que va més enllà dels llenguatges i eines pròpies de Microsoft. Al mateix temps, els arquitectes i els gestors de desenvolupament poden maximitzar els recursos disponibles en una única plataforma sense requerir una formació costosa i que requereix molt de temps. El codi antic s’executa en sistemes nous i el codi nou es basa en dècades d’experiència en PHP. És una victòria per a tothom.

Copyright © 2022 IDG Communications, Inc.

Leave a Comment

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