使用範例
if (V8Js::registerExtension('myjs', 'var x = 1 + 1;', array(), true) === false) {
exit("註冊 js 擴充功能腳本失敗");
}
$v8js = new V8Js;
$jsExec = <<<EOD
x;
EOD;
echo $v8js->executeString($jsExec)."\n"; // 顯示 "2"
(PECL v8js >= 0.1.0)
V8Js::registerExtension — 註冊 V8Js 的 Javascript 擴充
$extension_name
,$script
,$dependencies
= array(),$auto_enable
= false
將傳入的 Javascript script
註冊為擴充功能,以便在 V8Js 上下文中使用。
使用範例
if (V8Js::registerExtension('myjs', 'var x = 1 + 1;', array(), true) === false) {
exit("註冊 js 擴充功能腳本失敗");
}
$v8js = new V8Js;
$jsExec = <<<EOD
x;
EOD;
echo $v8js->executeString($jsExec)."\n"; // 顯示 "2"
請注意,自 2.0.0 版起,V8Js::registerExtension 已被棄用,建議改用快照 https://github.com/phpv8/v8js/releases/tag/2.0.0
使用快照和 moment.js 的簡單範例
<?php
$script = file_get_contents('https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js');
$snapshot = V8Js::createSnapshot($script);
$v8 = new V8Js('php', array(), array(), true, $snapshot);
echo $v8->executeString('moment().format()');
?>
旁註:如果您重視速度、安全性和穩定性,請勿在正式伺服器上使用 file_get_contents 來擷取外部 Javascript。