译注:原作者换工作到Wasmer,后续绑定相关文章没有再更新。 这篇博客文章是这一系列解释如何将Rust发射到地球以外的许多星系的文章的一部分: 前奏, WebAssembly 星系 ASM.js星系 C星系
译注:原作者换工作到Wasmer,后续绑定相关文章没有再更新。
这篇博客文章是这一系列解释如何将Rust发射到地球以外的许多星系的文章的一部分:
- 前奏,
- WebAssembly 星系
- ASM.js星系
- C星系
- PHP星系(当前这一集)
- NodeJS 星系
今天将要探索的是PHP星系。这篇文章会解释什么是PHP,以及如何将任何的Rust程序编译为C进而制作PHP的原生扩展。
什么是PHP,为什么?
PHP 是:
流行的通用脚本语言,特别适合Web开发。从您的博客到世界上最流行的网站,PHP提供了快速、灵活和实用的功能。
令人遗憾的是,PHP多年来名声不佳,但是最近的版本(主要是从PHP 7.0开始的)引入了简洁的语言特性和许多清理优化,这些特性都被讨厌它的人过分忽略了。PHP也是一种快速脚本语言,并且非常灵活。PHP现在已经有了声明类型、特征、可变参数、闭包(带有显式范围!)、生成器等特性和强大的向后兼容能力。PHP的开发是由RFC主导的,过程开放、民主。Gutenberg项目是WordPress的一个新编辑器,因为Wordpress是用PHP编写的,很自然的我们需要一个PHP的原生扩展来解析Gutenberg博客格式。PHP是一种有规范的语言(意味着可以有不同的虚拟机实现方案)。最流行的虚拟机是Zend Engine, 其他虚拟机也存在,比如HHVM(但是PHP支持最近被放弃,转而支持它们自己的PHP fork,称为Hack)、Peachpie或Tagua VM(正在开发中)。在本文中,我们将为Zend Engine创建一个扩展。注意这个虚拟机是用C语言编写的,很棒的是我们已经在前面一篇文章登陆了C星系!