PHPV8JS中有哪些扩展?
我已经开始在php中使用v8js有一段时间了,但是文档非常少 有一件事没有解释,那就是扩展 有可能,但没有详细解释这些行为,或者它们的目的或好处是什么 有人能提供一个很好的描述或链接到解释扩展的文档吗PHPV8JS中有哪些扩展?,php,javascript,v8,pecl,Php,Javascript,V8,Pecl,我已经开始在php中使用v8js有一段时间了,但是文档非常少 有一件事没有解释,那就是扩展 有可能,但没有详细解释这些行为,或者它们的目的或好处是什么 有人能提供一个很好的描述或链接到解释扩展的文档吗 感谢大家花时间阅读并回答:-)原始答案 我最初的回答表明每次调用executeString时都会调用扩展 正确答案 扩展是在给定V8Js实例的第一次executeString调用之前执行的一段代码。 扩展可以是所有V8Js实例的全局扩展,也可以是特定实例的本地扩展 我通过实验确定,这并不总是非常可
感谢大家花时间阅读并回答:-)原始答案 我最初的回答表明每次调用
executeString
时都会调用扩展
正确答案
扩展是在给定V8Js实例的第一次executeString
调用之前执行的一段代码。
扩展可以是所有V8Js实例的全局扩展,也可以是特定实例的本地扩展
我通过实验确定,这并不总是非常可靠的。如果您疯狂地刷新页面,您可能不会总是看到扩展运行。。。这可能就是为什么这是测试版质量的软件
这里有两个我突然想到的例子
全局扩展示例
代码
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"); }');
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"); }');
输出
嘿,分机!您好,来自常规代码!分机已经打招呼了
非全球示例
代码
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"); }');
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"); }');
输出
嘿,来自非全局扩展!您好,来自常规代码!分机已经打招呼了
谢谢你的回答!我试过这些例子。在全局示例中,它只执行一次,executeString上的所有后续调用都不会再次执行扩展代码。谢谢,您是正确的。我更新了我的答案以反映这一点:)