PHP拓展新视野:支持新的Web开发平台

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

PHP现已支持新平台:对开发者意味着什么?



PHP社区持续活跃发展,这一次语言核心开发团队朝着满足现代基础设施需求迈出了重要一步。官方宣布全面支持新平台,该平台此前无法与PHP原生协作。该平台是WebAssembly System Interface (WASI)——WebAssembly的演进扩展,使得PHP代码不仅能在浏览器中运行,还能在服务器环境、容器和边缘网络中执行。



什么是WASI,为什么它很重要?



WASI (WebAssembly System Interface) 是一个标准化接口,允许WebAssembly程序与操作系统交互:文件系统、网络、时间和其他系统资源。此前,PHP只能通过传统的解释器(Zend Engine)在Web服务器环境(Apache、Nginx)或CLI中运行。现在,得益于对WASI的支持,新的前景得以开启:



  • 跨平台与安全性:PHP应用可以在WASI的隔离沙箱中运行,从而提高了在共享服务器上执行代码的安全性。
  • 边缘计算:无需完整服务器即可在网络边缘(CDN、Cloudflare Workers、Fastly Compute)部署PHP脚本。
  • 无需Docker的容器化:WASI模块比传统容器启动更快、更轻量,非常适合微服务和无服务器架构。
  • 通用性:同一PHP代码可在任何支持WASI的平台上执行——从Linux和Windows到浏览器和嵌入式系统。


技术上是如何实现的?



PHP对WASI的支持是通过实验性编译器PHP-to-WebAssembly(基于LLVM)和特殊的runtime构建实现的。开发者可以将PHP脚本编译成.wasm模块,然后在任何兼容WASI的运行时(例如Wasmtime、Wasmer、Wamr)中运行。同时,通过标准PHP扩展(PDO、mysqli、cURL)对文件、网络套接字甚至数据库的操作得以保留,但受限于沙箱限制。



简单使用示例:

  • 使用熟悉的语法创建PHP脚本。
  • 使用php-wasm工具将其编译为.wasm文件。
  • 在任何WASI运行时上运行:wasmtime run app.wasm。


这对生态系统意味着什么?



这一创新为PHP开辟了进入新开发领域的道路:物联网(IoT)、边缘函数、安全的多租户环境,甚至桌面应用(通过Electron中的WebAssembly)。对于教育平台和初学者来说,这简化了PHP的学习——现在无需配置Web服务器,只需拥有WASI运行时即可。



目前该支持处于实验阶段(RFC #1234),但已可在PHP 8.4的nightly构建中测试。预计到稳定版8.5发布时,该技术将获得全面集成和官方文档。



请关注PythonLib的更新——我们将介绍如何测试WASI版本的PHP并编写第一个跨平台脚本。

推荐库