Ciasto brzoskwiniowe - PeachPie

Ciasto brzoskwiniowe
Logo brzoskwini
Pierwotny autor (autorzy) jopoziom
Deweloper(zy) Fundacja .NET
Pierwsze wydanie 18 lipca 2016 ; 5 lat temu .: ( 18.07.2016 )
Napisane w C#
Licencja Apache 2.0
Stronie internetowej www .peachpie .io

PeachPie to kompilator i środowisko uruchomieniowe języka PHP typu open source dla .NET Framework i .NET . Jest zbudowany na platformie kompilatora Microsoft Roslyn i jest oparty na projekcie Phalanger pierwszej generacji . PeachPie kompiluje kod źródłowy napisany w PHP do kodu bajtowego CIL . PeachPie wykorzystuje komponent kompilatora JIT platformy .NET Framework do obsługi początku procesu kompilacji. Jego celem nie jest generowanie ani optymalizacja kodu natywnego , ale raczej kompilacja skryptów PHP do zespołów .NET zawierających kod CIL i metadane. W lipcu 2017 roku projekt został członkiem Fundacji .NET .

Początki

Architektura PeachPie jest podobna do Phalanger projektu, który pierwotnie rozpoczął jako zajęć na Uniwersytecie Karola w Pradze , Czech . Został on zaimplementowany na platformie kompilatora Microsoft .NET o nazwie Roslyn , wykorzystującej interfejs API Roslyn . Od 2016 roku czeska firma iolevel kieruje rozwojem PeachPie.

PeachPie ma kilka zalet w stosunku do Phalanger, zarówno w wyniku interfejsu API Roslyn, jak i przerobionej architektury kompilatora. Podczas gdy Phalanger był w stanie kierować tylko na pełną platformę .NET Framework , która działała tylko w systemie Windows , a możliwości wieloplatformowe osiągnięto przez kierowanie na Mono , PeachPie umożliwia również kompilację do platformy .NET , dzięki czemu domyślnie jest wieloplatformowa . Opublikowane do tej pory testy porównawcze wskazują na poprawę wydajności PeachPie w porównaniu z jego poprzednikiem. Projekt zawiera zaawansowaną analizę semantyczną , która umożliwia kompilatorowi generowanie symboli podobnych do C# w celu zwiększenia funkcji interoperacyjności . Istnieją podobieństwa między PeachPie i Facebooka „s HHVM kompilatora, który wykonuje PHP na specjalnie zaprojektowanej maszyny wirtualnej. Jednak, jak ogłosił Facebook pod koniec 2017 r., wersja 3.24 HHVM będzie ostatnim wydaniem zgodnym z PHP, ponieważ projekt skupi się wyłącznie na wspieraniu zastrzeżonego przez Facebooka rozszerzenia PHP o nazwie Hack. To sprawia, że ​​PeachPie jest jedynym tego rodzaju projektem, który ma aspiracje być kompatybilny z przeszłymi i przyszłymi wersjami PHP.

Projekt otrzymuje znaczne wsparcie ze strony firmy Microsoft , ponieważ został zaproszony do prezentacji na wirtualnej konferencji .NET Conf i zaprezentowany w programie „On .NET” firmy Microsoft, a także w podkaście .NET Rocks. Od lipca 2017 roku PeachPie jest członkiem Fundacji .NET. W grudniu 2018 r iolevel otrzymał Europejskiej Rada Innowacji „s Horizon2020 dotację do kontynuowania prac nad PeachPie kompilator.

Cele

Projekt wymienia kilka głównych celów:

  • Wydajność : ponieważ kod PHP jest kompilowany do CIL, a następnie wykonywany, a nie interpretowany, teoretycznie powinno to prowadzić do poprawy wydajności. Mikro-benchmarki wykonane przez autorów sugerują wzrost wydajności w stosunku do standardowego PHP w pojedynczych przypadkach, a testy wykazały, że projekt jest w stanie uruchomić kod PHP około dwa razy szybciej na Azure . Korzystając z testu porównawczego zwykłego tekstu TechEmpower, zmierzono, że WordPress działający na PeachPie był w stanie obsłużyć 305 612 żądań na sekundę, podczas gdy standardowy PHP obsłużył 45 616 żądań na sekundę. PeachPie jest również częścią regularnie publikowanych rund benchmarkingowych TechEmpower, w których od 2019 roku PeachPie jest szybszy niż jakikolwiek inny framework PHP pojawiający się w teście. Phalanger zaoferował również znaczne korzyści w zakresie wydajności w porównaniu z 32-bitową wersją PHP 5.4 dla systemu Windows.
  • Interoperacyjność : projekt umożliwia użytkownikom interoperacyjność między językami PHP i .NET. W rezultacie możliwe są nietypowe operacje, takie jak wstrzykiwanie lambd C# do kontekstu PHP lub dziedziczenie klas PHP w C#. Dzięki temu użytkownicy mogą wykorzystywać biblioteki PHP w swoich projektach .NET i odwrotnie.
  • Dodatkowe bezpieczeństwo : biorąc pod uwagę, że PeachPie kompiluje cały kod źródłowy w jeden plik DLL, aplikacje mogą być rozpowszechniane bez oryginalnego kodu źródłowego. Projekt PeachPie umożliwia kompilację całych aplikacji PHP i frameworków do standardowego formatu .NET DLL i dystrybucję, na przykład, jako pakiety NuGet .
  • Możliwości wieloplatformowe : ponieważ PeachPie może atakować platformę .NET , która jest zgodna ze zwykłymi platformami .NET Framework, Xamarin i Mono i działa w systemach Windows , MacOS i Linux , umożliwia tworzenie aplikacji PHP dla wszystkich urządzeń i systemów operacyjnych uruchomienia platformy .NET.

Obsługiwane aplikacje

Od 2019 roku oficjalnie przetestowane i obsługiwane aplikacje obejmują WordPress , MediaWiki , oprogramowanie obsługujące stronę Wikipedii oraz CodeIgniter . Ponadto, potwierdzono, że wiele innych frameworków i programów PHP działa z obejściami przez członków społeczności open source, np. Laravel , WooCommerce czy Magento .

Zobacz też

Bibliografia