php - 什么是 php v8js 中的扩展?

标签 php javascript v8 pecl

我已经开始将 v8js 与 php 结合使用有一段时间了,但文档真的很薄。

没有解释的一件事是扩展

有可能registerExtension但没有详细解释它们的行为方式或它们的目的或好处。

任何人都可以提供一个很好的描述或指向解释扩展的文档的链接吗?

感谢大家花时间阅读和回答:-)

最佳答案

原始答案

我最初的回答表明每次 executeString 时都会调用扩展。

更正的答案

扩展是在给定 V8Js 实例的第一个 executeString 调用之前执行的一小段代码。 扩展可以针对所有 V8Js 实例是全局的,也可以是针对特定实例的本地扩展。

我已经通过实验确定这并不总是非常可靠。如果您疯狂地刷新页面,您可能不会总是看到扩展程序运行......这可能就是为什么这是 Beta 质量软件的原因。

我举两个例子

全局扩展示例

代码

V8Js::registerExtension('say_hi', 'print("hey from extension! "); var said_hi=true;', array(), true);
$v8 = new V8Js();
$v8->executeString('print("hello from regular code!")', 'test.php');
$v8->executeString('if (said_hi) { print(" extension already said hi"); }');

输出

hey from extension! hello from regular code! extension already said hi

非全局示例

代码

V8Js::registerExtension('say_hi', 'print("hey from non global extension! "); var said_hi=true;');
$v8 = new V8Js('PHP', array(), array('say_hi'));
$v8->executeString('print("hello from regular code!");', 'test.php');
$v8->executeString('if (said_hi) { print(" extension already said hi"); }');

输出

hey from non global extension! hello from regular code! extension already said hi

关于php - 什么是 php v8js 中的扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9023790/

相关文章:

javascript - 为什么lodash中的_.defaults()需要大量CPU时间?

带有 V8 的 Node.js 适用于内存有限的设备?

javascript - 为什么 Set 的原型(prototype)方法在调用 Object.create(Set.prototype) 时会抛出错误

php - 如何在 Packagist 中重命名 PHP 包

javascript - 在 Javascript 中检查文本框是否为空

php - 如何仅打印 mysql 行中的数据作为字符串

javascript - 如何在数组 Mongoose 模式中创建固定大小的数组

javascript - 如何在初始加载后将脚本加载到 XUL 应用程序中

PHP将第一个表列id添加到另一个表列id

php - Blueimp jQuery 文件上传与数据库集成