Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

PeachPie - это компилятор языка PHP с открытым исходным кодом и среда выполнения для платформ .NET и .NET Core . Он построен на платформе компилятора Microsoft Roslyn и основан на проекте Phalanger первого поколения . PeachPie компилирует исходный код, написанный на PHP, в байт-код CIL . PeachPie использует компонент JIT- компилятора .NET Framework для обработки начала процесса компиляции. Его цель - не генерировать или оптимизировать собственный код , а скорее скомпилировать скрипты PHP в сборки .NET, содержащие код CIL и метаданные. В июле 2017 года проект стал участником.NET Foundation . [4]

Истоки [ править ]

Архитектура PeachPie похожа на проект Phalanger , [5] который первоначально начинался как курсовая работа в Карловом университете в Праге , Чехия . [6] [7] Он был реализован на платформе компилятора Microsoft .NET под названием Roslyn с использованием Roslyn API . С 2016 года чешская компания iolevel возглавляет разработку PeachPie. [ необходима цитата ]

PeachPie имеет несколько преимуществ перед Phalanger, как в результате использования API Roslyn, так и в результате переработанной архитектуры компилятора. Хотя Phalanger мог нацеливаться только на полную .NET Framework , которая работала только в Windows , а кроссплатформенные возможности были достигнуты за счет нацеливания на Mono , PeachPie также допускает компиляцию в .NET Core , поэтому по умолчанию является кроссплатформенным . [8] Опубликованные на сегодняшний день тесты указывают на улучшение производительности PeachPie по сравнению с его предшественником. [9] [10] [11] Проект содержит расширенный семантический анализ., который позволяет компилятору генерировать символы, подобные C #, для расширенных функций взаимодействия . Есть сходство между PeachPie и Facebook «s HHVM компилятор, который выполняет PHP на специально разработанной виртуальной машине. Однако, как Facebook объявил в конце 2017 года, версия 3.24 HHVM будет последней версией, совместимой с PHP, поскольку проект будет сосредоточен исключительно на поддержке проприетарного расширения PHP для Facebook под названием Hack. [12] Таким образом, PeachPie остается единственным проектом такого типа, который стремится быть совместимым с прошлыми и будущими версиями PHP. [ необходима цитата ]

Проект получает значительную поддержку от Microsoft , [13] , которому было предложено представить на виртуальной конференции .NET Conf [14] [15] и показал на Microsoft «О .NET», [16] [17] , а также. Подкаст NET Rocks. [18] С июля 2017 года PeachPie является членом .NET Foundation. В декабре 2018 года, iolevel получил Европейский инновационный совет «сек Horizon2020 грант продолжать свою работу по PeachPie компилятором. [19] [20] [21]

Цели [ править ]

В проекте перечислено несколько основных целей: [22] [23]

  • Производительность : поскольку код PHP компилируется в CIL и впоследствии выполняется, а не интерпретируется, теоретически это должно привести к повышению производительности. [24] Микро-тесты, выполненные авторами, предполагают повышение производительности по сравнению со стандартным PHP в отдельных случаях [25], а тесты показали, что проект может запускать PHP-код примерно в два раза быстрее в Azure . [26] С помощью теста открытого текста TechEmpower было измерено, что WordPress, работающий на PeachPie, может обслуживать 305 612 запросов в секунду, [27] тогда как стандартный PHP обслуживает 45 616 запросов в секунду. [28] PeachPie также является частью регулярно публикуемых раундов тестирования TechEmpower.[29] [ неудачная проверка ] , где по состоянию на 2019 год PeachPie работает быстрее, чем любая другая структура PHP, представленная в тесте. [30] [ требуется неосновной источник ] Phalanger также предложил значительные преимущества в производительности по сравнению с 32-битной версией PHP 5.4 для Windows. [31] [32] [33]
  • Взаимодействие : проект позволяет пользователям взаимодействовать между языками PHP и .NET. В результате возможны необычные операции, такие как внедрение лямбда-выражений C # в контекст PHP или наследование классов PHP в C #. [34] Таким образом, пользователи могут использовать библиотеки PHP в своих проектах .NET и наоборот. [35]
  • Дополнительная безопасность : учитывая, что PeachPie компилирует весь исходный код в один файл DLL, приложения могут распространяться без исходного исходного кода. Проект PeachPie позволяет компилировать целые приложения и платформы PHP в стандартный формат .NET DLL и распространять, например, в виде пакетов NuGet . [36]
  • Возможность кросс-платформенная : с PeachPie может предназначаться .NET Ядро , которое совместимо с обычным .NET Framework, Xamarin и Mono , и работает на Windows , , MacOS и Linux , [37] , что позволяет PHP приложения , которые будут разработаны для всех устройств и операционные системы, поддерживающие .NET Core.

Поддерживаемые приложения [ править ]

По состоянию на 2019 год , официально протестированные и поддерживаемые приложения включают в себя WordPress , [38] [7] [39] MediaWiki , [40] программное обеспечение , которое работает на Википедии страницу, и CodeIgniter . [41] Кроме того, ряд других фреймворков и программ PHP были подтверждены для работы с обходными путями членами сообщества открытого кода, например, Laravel , [42] WooCommerce [43] или Magento . [44]

См. Также [ править ]

  • Фалангер
  • HHVM
  • Project Zero
  • GraalVM

Ссылки [ править ]

  1. ^ iolevel (18 июля 2016 г.). "Предварительный релиз компилятора PeachPie" . Проверено 10 февраля 2017 года .
  2. ^ "Репозиторий PeachPie" . github.com . [iolevel]. 10 февраля 2017 года . Проверено 11 февраля 2017 года .
  3. ^ "iolevel / peachpie: License" . github.com . [iolevel] . Проверено 11 февраля 2017 года .
  4. ^ Галлоуэй, Джон (2017-07-25). «Добро пожаловать на платформу компилятора Peachpie в .NET Foundation» . .NET Foundation .
  5. ^ Yegulalp, Сердар (2016-03-14). «Компилятор Peachpie стремится перенести PHP в .Net» . InfoWorld . Проверено 23 сентября 2020 .
  6. ^ phpcompiler (04.05.2011), Phalanger: раскрыт компилятор PHP .NET (1/2) , получено 08.02.2017
  7. ^ a b Хьюз, Мэтью (28.02.2017). «Эта компания придумала, как запустить Wordpress в .Net» . Следующая Сеть . Проверено 16 июня 2018 .
  8. ^ «.NET Core Framework - переходите на кроссплатформенность с .NET Framework» . msdn.microsoft.com . Проверено 11 февраля 2017 .
  9. ^ де Икаса, Мигель (2012-03-12). "PHP Phalanger в обновлениях Mono / .NET" . tirania.org . Проверено 11 февраля 2017 .
  10. ^ Адамс, Бен (2017-03-11). «Тест Peachpie Plaintext» . Github .
  11. ^ «Результаты 16 раунда - Тесты TechEmpower Framework» . 2018-06-06.
  12. ^ Криль, Павел (2017-09-20). «Забудьте о PHP! Вместо этого движок Facebook HHVM переключается на Hack» . InfoWorld . Проверено 28 апреля 2019 .
  13. ^ Миллар, Итан (2016-05-11). «Как компилятор Peachpie использует технологию разработки .Net в PHP - Учебное пособие по веб-разработке» . Учебник по веб-разработке . Проверено 16 октября 2018 .
  14. ^ Microsoft Visual Studio (20 сентября 2017 г.), Запуск PHP в .NET Core с Peachpie , получено 16 октября 2018 г.
  15. ^ Code Mantisa (18.09.2018), S303 - Расширенная совместимость C # PHP с PeachPie от Якуба Мисека , получено 16.10.2018
  16. ^ "Бенджамин Фистейн и Якуб Мишек - компилятор PHP Peachpie для .NET" . Канал 9 . Проверено 16 октября 2018 .
  17. ^ "Персиковый пирог" . Канал 9 . Проверено 16 октября 2018 .
  18. ^ ".NET Rocks! VNext" . .NET Rocks! . Проверено 16 октября 2018 .
  19. ^ «Фаза 1 инструмента малого и среднего бизнеса Европейского совета инноваций» (PDF) . ec.europa.eu . Ноябрь 2018.
  20. ^ "Центр данных EIC SME Instrument" . sme.easme-web.eu . Проверено 2 февраля 2019 .
  21. ^ Skoupá, Adéla (2019-01-18). "Inovativní nápady českých firem podpoří EU. Peníze dostane rehabilitationační nástroj pro lidi po mrtvici či nástroj PeachPie, který ocenil i Microsoft" . Hospodářské noviny (на чешском языке) . Проверено 2 февраля 2019 .
  22. ^ ".NET Foundation" . dotnetfoundation.org . Проверено 16 октября 2018 .
  23. ^ Бен Якуб, Атем (2017-02-16). «Peachpie, компилятор PHP и среда выполнения для .NET» . Сеть журналов PHP . Проверено 16 октября 2018 .
  24. ^ Yegulalp, Сердар. «Компилятор Peachpie стремится перенести PHP в .Net» . InfoWorld . Проверено 16 октября 2018 .
  25. ^ «Ориентиры - Персиковый пирог» . www.peachpie.io . Проверено 8 февраля 2017 .
  26. ^ Клозе, Анн-Катрин (2017-09-04). "Peachpie: Wordpress для PHP-компилятора на .NET Nutzen" . entwickler.de (на немецком языке) . Проверено 16 октября 2018 .
  27. ^ Адамс, Бен. «Ориентиры Peachpie» . GitHub .
  28. ^ «Результаты 13 раунда - TechEmpower» . TechEmpower .
  29. ^ «Тесты производительности TechEmpower Framework» . www.techempower.com . Проверено 16 июня 2018 .
  30. ^ «Бен Адамс в Твиттере» . Twitter . Проверено 16 июня 2018 .
  31. ^ «Ориентиры» . v1.php-compiler.net . Проверено 12 февраля 2017 .
  32. ^ "Phalanger: Наполнение PHP Mono, .NET - Phoronix" . www.phoronix.com . Проверено 12 февраля 2017 .
  33. ^ "Фалангер от DEVSENSE" . v4.php-compiler.net . Проверено 13 февраля 2017 .
  34. ^ Vaggalis, Никос (24 октября 2016). "Peachpie Open Source PHP to .NET Compiler" . i-programmer.info . Проверено 8 апреля 2017 .
  35. ^ Пейпман, Гуннар. «Запуск приложений PHP на .NET Core - DZone Web Dev» . dzone.com . Проверено 16 октября 2018 .
  36. ^ Гензельман, Скотт. «Весь WordPress скомпилирован в .NET Core и пакет NuGet с PeachPie - Скотт Хансельман» . www.hanselman.com . Проверено 16 октября 2018 .
  37. ^ Richlander. «Документы .NET Core» . docs.microsoft.com . Проверено 8 февраля 2017 .
  38. ^ Гензельман, Скотт. «Peachpie - PHP-компилятор с открытым исходным кодом для .NET и WordPress под ASP.NET Core - Скотт Хансельман» . www.hanselman.com . Проверено 16 июня 2018 .
  39. ^ "Partnerschaft zwischen Mozilla и BrowserStack & Updates для Symfony" . entwickler.de (на немецком языке). 2017-03-06 . Проверено 28 апреля 2019 .
  40. ^ «Настройка MediaWiki на .NET с помощью компилятора Peachpie @ PeachPie | PHP для .NET» . www.peachpie.io . Проверено 16 июня 2018 .
  41. ^ "Отчет о прогрессе производительности @ PeachPie | Компилятор PHP для .NET" . www.peachpie.io . Проверено 16 июня 2018 .
  42. ^ Baart, Calvin (18 апреля 2019 г.), GitHub - calvinbaart / laravel-peachpie-sample , получено 28 апреля 2019 г.
  43. ^ Ллевеллин, Дэниел (26 апреля 2019 г.), GitHub - diddledan / net.WordPress.plugin.woocommerce , получено 28 апреля 2019 г.
  44. ^ Тоби (2018-08-28), этот проект отражает Magento 1.9.3.8 и пытается скомпилировать его через peachpie (https://www.peachpie.io/) в .net. В процессе выполнения этого необходимы некоторые исправления, называемые "основные хаки" .. , получено 2019-04-28 Внешняя ссылка в |title=( помощь )