我已经开始使用v8js与PHP一段时间了,但文档很薄.
@H_502_1@没有解释的一件事是Extensions.
@H_502_1@有可能是registerExtension,但没有详细解释这些行为或其目的或好处的行为.
@H_502_1@任何人都可以提供一个很好的描述或链接到解释扩展的文档?
@H_502_1@感谢大家花时间阅读和回答:-)
原始答案
@H_502_1@我的原始答案表明,每次执行executeString时都会调用扩展名.
@H_502_1@更正了答案
@H_502_1@扩展是在给定V8Js实例的第一个executeString调用之前执行的一些代码.
扩展可以是所有V8J实例的全局扩展,也可以是特定实例的本地扩展. @H_502_1@我已经通过实验确定这并不总是非常可靠.如果你疯狂刷新一个页面,你可能并不总是看到扩展程序运行…这可能是为什么这是beta版软件. @H_502_1@这是我掀起的两个例子 @H_502_1@全球扩展示例 @H_502_1@码
扩展可以是所有V8J实例的全局扩展,也可以是特定实例的本地扩展. @H_502_1@我已经通过实验确定这并不总是非常可靠.如果你疯狂刷新一个页面,你可能并不总是看到扩展程序运行…这可能是为什么这是beta版软件. @H_502_1@这是我掀起的两个例子 @H_502_1@全球扩展示例 @H_502_1@码
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"); }');@H_502_1@产量
@H_502_1@hey from extension! hello from regular code! extension already said hi@H_502_1@非全球范例 @H_502_1@码
V8Js::registerExtension('say_hi','print("hey from non global extension! "); var said_hi=true;'); $v8 = new V8Js('PHP',array('say_hi')); $v8->executeString('print("hello from regular code!");','test.PHP'); $v8->executeString('if (said_hi) { print(" extension already said hi"); }');@H_502_1@产量
@H_502_1@hey from non global extension! hello from regular code! extension already said hi