Запустите PHP на .NET с помощью PeachPie

автор vadim


Одна из наиболее интересных особенностей .NET — это ее расширяемость. Это не просто платформа разработки, предназначенная только для Microsoft, с платформами и языками, ориентированными на Windows. Даже на заре существования платформы такие инструменты, как IronRuby и IronPython, добавляли в CLR популярные языки с открытым исходным кодом, а такие проекты, как Unity, создавались на основе .NET, добавляя дополнительные библиотеки и сервисы.

В основе .NET лежит общеязыковая среда выполнения с открытым исходным кодом CoreCLR. Это комбинация оперативного компилятора RyuJIT, ориентированного на конкретную архитектуру, и интерпретатора CIL (Common Intermediate Language) проекта. Языки .NET, основанные на открытых стандартах, компилируются в CIL, а компиляция во время выполнения осуществляется средой CLR. Существует даже возможность компиляции напрямую в двоичные файлы для конкретной архитектуры, созданные на основе CoreRT, собственной среды выполнения.

Среда, основанная на стандартах, позволяет третьим сторонам относительно легко внедрять свои собственные языки и среды в .NET, поддерживая все: от 3D-игр с Unity до реализации PeachPie знакомой среды веб-разработки PHP.

Представляем персиковый пирог

PeachPie особенно интересен, поскольку PHP остается популярным способом быстрого создания и доставки веб-приложений. Предназначенный для языковой совместимости со стандартной версией PHP, он переносит код PHP в среды ASP.NET Core, такие как Azure, компилируя код PHP в собственный CIL .NET, а не используя стандартные инструменты PHP. Вместо запуска нескольких сред вы используете одну, но можете выбирать разные инструменты разработки для создания и развертывания страниц и приложений.

Вы можете интегрировать две технологии, реализуя ASP.NET C# вместе с PeachPie PHP в одном проекте. Работу по созданию сайтов с использованием таких технологий, как Blazor, можно вызывать непосредственно из PHP и наоборот. Существующие библиотеки и функции PHP видны вашему коду C#, и вы можете вызывать их, используя знакомые конструкции. Вариант коммерческой поддержки со стороны команды разработчиков означает, что вы не одиноки и не пытаетесь получить поддержку сообщества.

Это делает такие инструменты, как PeachPie, особенно полезными: вы можете перенести существующие ресурсы и приложения на новую платформу без внесения серьезных изменений, пока ваши разработчики осваивают новые технологии. Это интересный взгляд на то, как архитектурные решения, принятые для языка, ориентированного на собственный интерпретатор, необходимо перенести на совершенно новую экосистему. Поскольку это проект с открытым исходным кодом и лицензией Apache 2.0, вы можете просмотреть код и отправить запросы на включение.

Перевод концепций низкого уровня может быть трудным, особенно без прямого сопоставления двух способов работы. В блоге PeachPie команда дизайнеров показывает, как им удалось осуществить переход между относительно базовой концепцией PHP (объявление явного интерфейса) и результирующим CIL-кодом. Также существует проблема перехода от слабо типизированной среды, такой как PHP, к среде со строгой типизацией по умолчанию.

На практике, конечно, большая часть функциональности PHP может выполняться с помощью библиотечных функций. Подход PHP к реализации операций в виде функций упрощает задачи, выполняемые PeachPie, поскольку функцию PHP можно сопоставить непосредственно с библиотекой .NET. Все, что необходимо, — это чтобы PeachPie действовал как черный ящик, вызывал функцию .NET, когда ожидается эквивалент PHP, и возвращал правильные выходные данные для текущих входных данных. Аналогичным образом он может сопоставлять конструкции пользовательского интерфейса, такие как сетки и формы, с эквивалентными элементами управления ASP.NET.

Строительный код с PeachPie

Начать работу с PeachPie очень быстро; он устанавливается как расширение Visual Studio из Visual Studio Marketplace, добавляя набор шаблонов в диалоговое окно «Новый проект». Вы можете использовать это, чтобы начать создание приложения ASP.NET с поддержкой PHP или новой библиотеки, чтобы ваш существующий внутренний код можно было вызывать из PHP. Как только вы откроете новый проект, PeachPie загрузит его зависимости, и вы сможете приступить к написанию кода. Используя Visual Studio, вы получаете доступ ко всем ее инструментам, включая IntelliSense и встроенный отладчик. PeachPie компилирует сайты и запускает их так же, как вы запускаете ASP.NET, поэтому вы можете использовать существующие навыки и инструменты отладки .NET из F5 и служб для работы с удаленными сайтами в Azure или на ваших собственных веб-серверах. В качестве дополнительного бонуса имеется поддержка использования Azure DevOps, гарантирующая, что ваши сайты станут частью вашего конвейера CI/CD (непрерывная интеграция и непрерывная доставка).

Современная разработка .NET не требует использования Visual Studio, поэтому вы можете работать с PeachPie непосредственно из командной строки, используя .NET SDK. Загрузите шаблоны PeachPie из приложения dotnet CLI: dotnet new -i Peachpie.Templates::* При этом будут установлены шаблоны для создания приложений ASP.NET, библиотек классов и консольных приложений. Интересно, что существует даже возможность использовать PHP для создания приложений Blazor WebAssembly и приложений PHP WebAssembly, что позволяет вашим пользователям запускать PHP-код на собственной скорости в своих браузерах.

Теперь вы можете начать создавать сайт PHP, используя dotnet new web -lang PHP. При этом создаются два каталога: Веб-сайт с кодом вашего сайта и Сервер, который является точкой входа веб-приложения. Чтобы запустить сайт, просто измените каталог на каталог сервера и введите dotnet run. Затем вы можете перейти к localhost и порту, указанному в представлении командной строки ASP.NET.

Этот подход позволяет вам выбрать инструмент веб-разработки для редактирования кода вашего сайта. Исходный файл index.php содержит простое PHP-приложение для отображения текста в браузере, чтобы вы могли протестировать базовую операцию PeachPie. Любой PHP-код, перенесенный на ваш сайт, можно скопировать сюда для тестирования перед загрузкой на хост ASP.NET.

Использование .NET для вывода PHP за пределы Интернета

Поскольку PeachPie превращает PHP в язык .NET, вы фактически не ограничены созданием веб-приложений. Теперь вы можете использовать свои навыки работы с PHP для создания автономного кода .NET, например, используя его в консольных приложениях. Подход декларативного программирования PHP может помочь преодолеть разрыв между разработкой с низким уровнем кода и крупномасштабными приложениями, позволяя использовать быстрый код PHP в качестве модулей и библиотек приложений.

В PeachPie есть что понравиться. Обеспечение совместимости PHP с .NET — достойная цель. Множество PHP-кода все еще используется, и многие возможности современного ASP.NET могут помочь в реализации этого PHP-кода, в то же время позволяя разработчикам .NET добавлять глубокую корпоративную интеграцию в существующие интерфейсы PHP путем создания функций C# и вызова их из PHP. Сочетание и сопоставление подобных инструментов дает разработчикам PHP путь к разработке ASP.NET и ее опциям встроенного кода Razor — эффективной гибридной модели разработки.

Результатом стал инструмент, демонстрирующий возможности платформы .NET, выходящие за рамки собственных языков и инструментов Microsoft. В то же время архитекторы и менеджеры по развитию могут максимально эффективно использовать доступные ресурсы на единой платформе, не требуя дорогостоящего и трудоемкого обучения. Старый код может работать на новых системах, а новый код основывается на десятилетиях опыта работы с PHP. Это победа для всех.

Related Posts

Оставить комментарий