# 源安装说明

# https://github.com/phpv8/v8js/blob/php7/README.Linux.md
# 开始安装所需的依赖项
sudo apt-get install build-essential curl git python libglib2.0-dev
cd /tmp
#centos是yum,这里的apt-get是Ubuntu下的


# 首先安装depot\u工具(源代码签出需要)
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=`pwd`/depot_tools:"$PATH"

# 下载 v8
fetch v8
cd v8

# (可选)如果要生成特定版本:
git checkout 8.0.426.30
gclient sync

# 设置GN
tools/dev/v8gen.py -vv x64.release -- is_component_build=true use_custom_libcxx=false

# 建造
ninja -C out.gn/x64.release/

# 安装到 /opt/v8/
sudo mkdir -p /opt/v8/{lib,include}
sudo cp out.gn/x64.release/lib*.so out.gn/x64.release/*_blob.bin \
out.gn/x64.release/icudtl.dat /opt/v8/lib/
sudo cp -R include/* /opt/v8/include/

# 编译php-v8js本身

# 注意 --with-php-config=是你的网站PHP路径
cd /tmp
git clone https://github.com/phpv8/v8js.git
cd v8js
phpize
./configure --with-v8js=/opt/v8 --with-php-config=/www/server/php/72/bin/php-config LDFLAGS="-lstdc++" CPPFLAGS="-DV8_COMPRESS_POINTERS"
make
make test
sudo make install
# 在把v8js.so 文件添加到php.ini文件里(宝塔-首页-php管理-配置文件,把下面的一行添加进去就好了)

extension=v8js.so
Centos8 在宝塔php 7或更高环境安装v8js拓展


# 再重新加载php配置,就可以在phpinfo里看到了。

Centos8 在宝塔php 7或更高环境安装v8js拓展

# 到此v8js就安装完成了
#下面是php测试代码
$v8 = new \V8Js();
/* basic.js */
$JS = <<< EOT
len = print('Hello' + ' ' + 'World!' + "\\n");
len;
EOT;

try {
var_dump($v8->executeString($JS, 'basic.js'));
} catch (V8JsException $e) {
var_dump($e);
}

# 结果会输出
Hello World!
int(13)

#更多测试例子
<?php
$v8 = new V8Js();
/* basic.js */
$JS = <<< EOT

var string1 = 'Hello' + ' ' + 'World!';
len = print(string1+"\\n");
var string2 = 'Hello' + ' ' + 'World2!';
len2 = print(string2+"\\n");
string1+","+string2;
EOT;

try {
$temp = $v8->executeString($JS, 'basic.js');
$temp = explode(",",$temp);
print_r($temp);
} catch (V8JsException $e) {
print_r($e);
}