PeachPie es un compilador y entorno de ejecución de lenguaje PHP de código abierto para .NET Framework y .NET Framework . Está construido sobre la plataforma de compilación Microsoft Roslyn y se basa en el proyecto Phalanger de primera generación . PeachPie compila el código fuente escrito en PHP en código de bytes CIL . PeachPie aprovecha el componente de compilador JIT de .NET Framework para gestionar el inicio del proceso de compilación. Su propósito no es generar u optimizar código nativo , sino compilar scripts PHP en ensamblajes .NET que contengan código CIL y metadatos. En julio de 2017, el proyecto se convirtió en miembro de la .NET Foundation . [4]
Orígenes
La arquitectura de PeachPie es similar al proyecto Phalanger , [5] que originalmente comenzó como un curso en la Universidad Carolina de Praga , República Checa . [6] [7] Se implementó en la plataforma de compilación .NET de Microsoft llamada Roslyn , utilizando la API de Roslyn . Desde 2016, la empresa checa iolevel ha liderado el desarrollo de PeachPie. [ cita requerida ]
PeachPie tiene varias ventajas sobre Phalanger, tanto como resultado de la API de Roslyn como de la arquitectura rediseñada del compilador. Si bien Phalanger solo pudo apuntar a .NET Framework completo , que solo se ejecutaba en Windows , y se lograron capacidades multiplataforma al apuntar a Mono , PeachPie también permite una compilación a .NET , por lo que es multiplataforma de forma predeterminada. [8] Los puntos de referencia publicados hasta la fecha apuntan a mejoras de rendimiento de PeachPie en comparación con su predecesor. [9] [10] [11] El proyecto contiene un análisis semántico avanzado , que permite al compilador generar símbolos similares a C# para funciones de interoperabilidad mejoradas . Existen similitudes entre PeachPie y el compilador HHVM de Facebook , que ejecuta PHP en una máquina virtual especialmente diseñada. Sin embargo, como Facebook anunció a fines de 2017, la versión 3.24 de HHVM sería la última versión compatible con PHP, ya que el proyecto se centraría exclusivamente en brindar soporte a la extensión propietaria de PHP de Facebook llamada Hack. [12] Esto deja a PeachPie como el único proyecto de este tipo con la aspiración de ser compatible con versiones pasadas y futuras de PHP. [ cita requerida ]
El proyecto recibe un apoyo considerable de Microsoft , [13] habiendo sido invitado a presentarse en la conferencia virtual .NET Conf [14] [15] y aparecido en "On .NET" de Microsoft, [16] [17] así como en el podcast .NET Rocks. [18] Desde julio de 2017, PeachPie ha sido miembro de la Fundación .NET. En diciembre de 2018, iolevel recibió la subvención Horizon2020 del Consejo Europeo de Innovación para continuar su trabajo en el compilador PeachPie. [19] [20] [21]
Objetivos
El proyecto enumera varios objetivos principales: [22] [23]
- Rendimiento : dado que el código PHP se compila en CIL y posteriormente se ejecuta, en lugar de interpretarse, teóricamente esto debería conducir a mejoras en el rendimiento. [24] Los micro-benchmarks realizados por los autores sugieren un mayor rendimiento sobre el PHP estándar en casos aislados [25] y las pruebas han demostrado que el proyecto puede ejecutar código PHP aproximadamente el doble de rápido en Azure . [26] Utilizando el benchmark de texto simple de TechEmpower, se midió que WordPress ejecutándose en PeachPie pudo atender 305.612 solicitudes por segundo, [27] mientras que el PHP estándar atendió 45.616 solicitudes por segundo. [28] PeachPie también forma parte de las rondas de evaluación comparativa de TechEmpower publicadas periódicamente [29] [ verificación fallida ] , donde, a partir de 2019, PeachPie es más rápido que cualquier otro framework PHP que aparece en el benchmark. [30] [ fuente no primaria necesaria ] Phalanger también había ofrecido considerables beneficios de rendimiento sobre una versión de Windows de 32 bits de PHP 5.4. [31] [32] [33]
- Interoperabilidad : el proyecto permite a los usuarios interoperar entre los lenguajes PHP y .NET. Como resultado, son posibles operaciones inusuales, como inyectar lambdas de C# en un contexto PHP o heredar clases PHP en C#. [34] Por lo tanto, los usuarios pueden utilizar bibliotecas PHP en sus proyectos .NET y viceversa. [35]
- Seguridad adicional : dado que PeachPie compila todo el código fuente en un solo archivo DLL, las aplicaciones se pueden distribuir sin el código fuente original. El proyecto PeachPie permite compilar aplicaciones y frameworks PHP completos en el formato DLL estándar de .NET y distribuirlos, por ejemplo, como paquetes NuGet . [36]
- Capacidad multiplataforma : dado que PeachPie puede apuntar a .NET , que es compatible con el .NET Framework normal, Xamarin y Mono , y se ejecuta en Windows , MacOS y Linux , [37] permite desarrollar aplicaciones PHP para todos los dispositivos y sistemas operativos capaces de ejecutar .NET.
Aplicaciones compatibles
A partir de 2019, las aplicaciones oficialmente probadas y admitidas incluyen WordPress , [38] [7] [39] MediaWiki , [40] el software que impulsa Wikipedia y CodeIgniter . [41] Además, los miembros de la comunidad de código abierto han confirmado que varios otros marcos y programas PHP funcionan con soluciones alternativas, por ejemplo, Laravel , [42] WooCommerce [43] o Magento . [44]
Véase también
Referencias
- ^ iolevel (18 de julio de 2016). «PeachPie Compiler pre-release». GitHub . Consultado el 10 de febrero de 2017 .
- ^ "Repositorio de PeachPie". github.com . [iolevel]. 10 de febrero de 2017 . Consultado el 11 de febrero de 2017 .
- ^ "iolevel/peachpie: Licencia". github.com . [iolevel] . Consultado el 11 de febrero de 2017 .
- ^ Galloway, Jon (25 de julio de 2017). "Bienvenido a la plataforma de compilación Peachpie en la Fundación .NET". Fundación .NET . Archivado desde el original el 10 de agosto de 2020. Consultado el 22 de mayo de 2019 .
- ^ Yegulalp, Serdar (14 de marzo de 2016). "El compilador Peachpie tiene como objetivo llevar PHP a .Net". InfoWorld . Consultado el 23 de septiembre de 2020 .
- ^ phpcompiler (4 de mayo de 2011), Phalanger: compilador PHP .NET revelado (1/2) , consultado el 8 de febrero de 2017
- ^ ab Hughes, Matthew (28 de febrero de 2017). "Esta empresa descubrió cómo ejecutar Wordpress en .Net". The Next Web . Consultado el 16 de junio de 2018 .
- ^ ".NET Core Framework: multiplataforma con .NET Framework". msdn.microsoft.com . 17 de junio de 2015 . Consultado el 11 de febrero de 2017 .
- ^ de Icaza, Miguel (12 de marzo de 2012). "Actualizaciones de PHP en Mono/.NET de Phalanger". tirania.org . Consultado el 11 de febrero de 2017 .
- ^ Adams, Ben (11 de marzo de 2017). "Punto de referencia de texto simple de Peachpie". Github .
- ^ "Resultados de la ronda 16: puntos de referencia del marco TechEmpower". 6 de junio de 2018.
- ^ Krill, Paul (20 de septiembre de 2017). "¡Olvídate de PHP! El motor HHVM de Facebook cambia a Hack". InfoWorld . Consultado el 28 de abril de 2019 .
- ^ Millar, Ethan (11 de mayo de 2016). "Cómo el compilador Peachpie aprovecha la tecnología de desarrollo .Net en PHP - Tutorial de desarrollo web". Tutorial de desarrollo web . Consultado el 16 de octubre de 2018 .
- ^ Microsoft Visual Studio (2017-09-20), Ejecución de PHP en .NET Core con Peachpie , consultado el 16 de octubre de 2018
- ^ Code Mantisa (18 de septiembre de 2018), S303 - Interoperabilidad avanzada de C# PHP con PeachPie por Jakub Misek , consultado el 16 de octubre de 2018
- ^ "Benjamin Fistein y Jakub Míšek - Compilador PHP Peachpie para .NET". Canal 9. Archivado desde el original el 28 de mayo de 2019. Consultado el 16 de octubre de 2018 .
- ^ "Peachpie". Canal 9. 28 de abril de 2016. Consultado el 16 de octubre de 2018 .
- ^ ".NET Rocks! vNext". .NET Rocks! . Consultado el 16 de octubre de 2018 .
- ^ "Instrumento para las PYME del Consejo Europeo de Innovación, fase 1" (PDF) . ec.europa.eu . Noviembre de 2018.
- ^ "Centro de datos del instrumento EIC SME". sme.easme-web.eu . Consultado el 2 de febrero de 2019 .
- ^ Skoupá, Adéla (18 de enero de 2019). "Inovativní nápady českých firem podpoří EU. Peníze dostane rehabilitační nástroj pro lidi po mrtvici či nástroj PeachPie, který ocenil i Microsoft". Hospodářské noviny (en checo) . Consultado el 2 de febrero de 2019 .
- ^ ".NET Foundation". dotnetfoundation.org . Consultado el 16 de octubre de 2018 .
- ^ Ben Yacoub, Hatem (16 de febrero de 2017). "Peachpie, el compilador y entorno de ejecución de PHP para .NET". PHP Magazine Network . Consultado el 16 de octubre de 2018 .
- ^ Yegulalp, Serdar. "El compilador Peachpie tiene como objetivo llevar PHP a .Net". InfoWorld . Consultado el 16 de octubre de 2018 .
- ^ "Puntos de referencia: Peachpie". www.peachpie.io . Consultado el 8 de febrero de 2017 .
- ^ Klose, Ann-Kathrin (4 de septiembre de 2017). "Peachpie: Wordpress para compilador PHP en .NET". entwickler.de (en alemán) . Consultado el 16 de octubre de 2018 .
- ^ Adams, Ben (27 de mayo de 2019). «Puntos de referencia de Peachpie». GitHub .
- ^ "Resultados de la ronda 13 - TechEmpower". TechEmpower .
- ^ "Puntos de referencia del marco TechEmpower". www.techempower.com . Consultado el 16 de junio de 2018 .
- ^ "Ben Adams en Twitter". Twitter . Consultado el 16 de junio de 2018 .
- ^ "Benchmarks". v1.php-compiler.net . Archivado desde el original el 20 de enero de 2017 . Consultado el 12 de febrero de 2017 .
- ^ "Phalanger: Cómo rellenar PHP con Mono, .NET - Phoronix". www.phoronix.com . Consultado el 12 de febrero de 2017 .
- ^ "Phalanger por DEVSENSE". v4.php-compiler.net . Consultado el 13 de febrero de 2017 .
- ^ Vaggalis, Nikos (24 de octubre de 2016). "Compilador PHP a .NET de código abierto de Peachpie". i-programmer.info . Consultado el 8 de abril de 2017 .
- ^ Peipman, Gunnar. "Ejecución de aplicaciones PHP en .NET Core - DZone Web Dev". dzone.com . Consultado el 16 de octubre de 2018 .
- ^ Hanselman, Scott. "Todo WordPress compilado en .NET Core y un paquete NuGet con PeachPie - Scott Hanselman". www.hanselman.com . Consultado el 16 de octubre de 2018 .
- ^ Richlander. ".NET Core Docs". docs.microsoft.com . Consultado el 8 de febrero de 2017 .
- ^ Hanselman, Scott. "Peachpie - Compilador PHP de código abierto para .NET y WordPress con ASP.NET Core - Scott Hanselman". www.hanselman.com . Consultado el 16 de junio de 2018 .
- ^ "Partnerschaft zwischen Mozilla y BrowserStack y actualizaciones para Symfony". entwickler.de (en alemán). 2017-03-06. Archivado desde el original el 8 de agosto de 2020 . Consultado el 28 de abril de 2019 .
- ^ "Configuración de MediaWiki en .NET con Peachpie @ PeachPie | Compilador PHP para .NET". www.peachpie.io . 26 de febrero de 2018 . Consultado el 16 de junio de 2018 .
- ^ "Informe de progreso del rendimiento en PeachPie | Compilador PHP para .NET". www.peachpie.io . 4 de junio de 2018 . Consultado el 16 de junio de 2018 .
- ^ Baart, Calvin (18 de abril de 2019), GitHub - calvinbaart/laravel-peachpie-sample , consultado el 28 de abril de 2019
- ^ Llewellyn, Dani (26 de abril de 2019), GitHub - diddledani/net.WordPress.plugin.woocommerce , consultado el 28 de abril de 2019
- ^ Tobi (28/08/2018), Este proyecto refleja Magento 1.9.3.8 e intenta compilarlo a través de peachpie (https://www.peachpie.io/) en .net. En el proceso de hacer esto, son necesarias algunas correcciones llamadas "trucos básicos"... , consultado el 28/04/2019