首页 > 解决方案 > 如何向 PHP 添加新的操作码?

问题描述

搜索它我发现了这篇博文:https ://www.npopov.com/2017/04/14/PHP-7-Virtual-machine.html

它是否涵盖了添加新操作码所需的“一切”,或者我需要在引擎中触及的所有地方?还是在代码库中开始 grepping 更好?也许有一个可以用作原型或示例的提交?

编辑,最后添加的操作码是这样的:https ://github.com/php/php-src/pull/7019/files#diff-773bdb31563a0f907c75068675f6056b25f003e61f46928a31d9837ae107460d

标签: php-internals

解决方案


PHP 源代码是用c 编程语言编写的。这就是您在“添加的最后一个操作码”的链接中看到的内容。那不是操作码,它是源代码。PHP 解释器(Zend 虚拟机)的输出读取 php 文件的内容并将其转换为操作码。操作码不是程序员直接编写的。

如果你想为 PHP 编写一个自定义扩展,你需要用 c 编写它并对其进行结构化,以便它可以作为外部 mod 加载。说“这不是微不足道的”将是一种轻描淡写的说法。

有一个混合系统允许您编写类似 PHP 的代码,这些代码可以编译成独立的 PHP 扩展。查看Zephir 语言。堆栈溢出有很多带有“zephir”标签的问题。我已经阅读过它但没有使用它。


推荐阅读