PHP теперь поддерживает новую платформу: что изменится для разработчиков?
Сообщество PHP продолжает активно развиваться, и на этот раз команда разработчиков ядра языка сделала важный шаг навстречу современным требованиям инфраструктуры. Официально объявлено о полной поддержке новой платформы, которая ранее была недоступна для нативной работы с PHP. Речь идет о платформе WebAssembly System Interface (WASI) — эволюционном расширении WebAssembly, позволяющем запускать PHP-код не только в браузере, но и в серверных окружениях, контейнерах и edge-сетях.
Что такое WASI и почему это важно?
WASI (WebAssembly System Interface) — это стандартизированный интерфейс, который позволяет WebAssembly-программам взаимодействовать с операционной системой: файловой системой, сетью, временем и другими системными ресурсами. Ранее PHP мог работать только через традиционные интерпретаторы (Zend Engine) в окружении веб-сервера (Apache, Nginx) или CLI. Теперь же благодаря поддержке WASI открываются новые горизонты:
- Кроссплатформенность и безопасность: PHP-приложения могут запускаться в изолированной песочнице WASI, что повышает безопасность выполнения кода на серверах общего пользования.
- Edge-вычисления: возможность развертывать PHP-скрипты на границе сети (CDN, Cloudflare Workers, Fastly Compute) без необходимости полноценного сервера.
- Контейнеризация без Docker: WASI-модули легче и быстрее запускаются, чем традиционные контейнеры, что идеально для микросервисов и serverless-архитектур.
- Универсальность: один и тот же PHP-код можно выполнять на любой платформе, поддерживающей WASI — от Linux и Windows до браузеров и встраиваемых систем.
Как это работает технически?
Поддержка WASI в PHP реализована через экспериментальный компилятор PHP-to-WebAssembly (на базе LLVM) и специальную сборку runtime. Разработчики могут компилировать свои PHP-скрипты в .wasm-модули, которые затем запускаются в любом WASI-совместимом рантайме (например, Wasmtime, Wasmer, Wamr). При этом сохраняется работа с файлами, сетевыми сокетами и даже базой данных через стандартные расширения PHP (PDO, mysqli, cURL), но в рамках sandbox-ограничений.
Пример простого использования:
- Создаёте PHP-скрипт с привычным синтаксисом.
- Компилируете его в
.wasmс помощью инструментаphp-wasm. - Запускаете на любом WASI-рантайме:
wasmtime run app.wasm.
Что это значит для экосистемы?
Нововведение открывает путь для PHP в новые сегменты разработки: Интернет вещей (IoT), функции на границе сети (edge functions), безопасные мультитенантные среды и даже настольные приложения (через WebAssembly в Electron). Для образовательных платформ и начинающих разработчиков это упрощает изучение PHP — теперь не нужно настраивать веб-сервер, достаточно иметь WASI-рантайм.
Пока поддержка находится на стадии экспериментальной (RFC #1234), но уже доступна для тестирования в nightly-сборках PHP 8.4. Ожидается, что к стабильному релизу 8.5 технология получит полноценную интеграцию и официальную документацию.
Следите за обновлениями на PythonLib — мы расскажем, как протестировать WASI-сборку PHP и написать первый кроссплатформенный скрипт.