Mac安装V8Js

2018-06-22 05:07:54来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

背景

最近在做一个小项目,里面有个模块需要在php里调用js脚本并拿到执行结果。

环境:mac 10.10.1、php5.5.14

参考文章:http://www.phpied.com/installing-v8js-for-php-on-a-mac/

一、V8引擎 和 V8Js介绍

  V8引擎(https://github.com/v8/v8)是Google的开源JavaScript引擎,性能很高,NodeJs就是采用了V8引擎。V8的作用就解析、运行JavaScript脚本,可以简单理解为JavaScript的解析器。

  V8Js(https://github.com/phpv8/v8js)是php的一个插件(PECL扩展),是基于V8的,所以叫V8Js

在安装V8Js扩展后,即可在php中调用其接口来执行Js代码,效果就像是:

<?php
class Foo {
  var $bar = null;
}
$v8 = new V8Js();
$v8->foo = new Foo;
// This prints "no"
$v8->executeString('print( "bar" in PHP.foo ? "yes" : "no" );');
?>

可以看到“executeString”这个方法执行了js代码(还混杂着php)

看起来不伦不类,但如何用V8Js取决于coder,你完全可以不使用V8Js中的某些功能(例如和PHP混用)。

二、安装V8

Mac用户,推荐用brew安装:

如果你还没有HomeBrew,那就安装一个:

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

下面是安装V8

$ brew install v8

验证是否安装成功,启动v8试试

$ v8
V8 version 5.1.281.47 [sample shell]
> var a = 1;
> a + 1
> 2

三、安装V8Js

我采取的是pecl,你不知道你有没有pecl?下面命令可以帮你检查

$ pecl version

我的输出如下:

PEAR Version: 1.10.1
PHP Version: 5.5.14
Zend Engine Version: 2.5.0
...

如果你没有pecl,可参考:http://www.jianshu.com/p/598c0fd84719的安装方法

使用pecl安装v8js

$ sudo install pecl install v8js-0.6.4

此处注意,最新版的v8js需要php7(1.3.x),由于我是php5,所以只能装0.6.x版本的

如果你是php7,又想安装最新版的,则可以执行如下命令:

$ sudo install pecl install v8js

四、配置php并测试

先找到自己php的配置文件在哪,可以通过phpinfo查看(搜索:php.ini)php配置文件路径。

在配置中添加一行:

extension=v8js.so

这里需要注意一下pecl的扩展安装目录,和php的扩展目录是否一致。

php的扩展目录可以通过phpinfo查看

pecl的扩展安装目录可以通过如下命令查看

$ pecl config-show | grep extension

我的输出是:

$ PHP extension directory        ext_dir          /usr/lib/php/extensions/no-debug-non-zts-20121212

如果发现不一样,把pecl的扩展安装目录下的v8js.so复制到php的扩展目录即可。

配置完后记得重启一下apahce(重新加载php配置)

如何测试?

如果你用ThinkPHP框架(3.2.x)版本,由于命名空间的存在所以需要这样new出V8Js对象:

$v8 = new \V8Js();

接着调用$v8对象的executeString方法即可:

$v8->executeString(‘print("hello v8js!")’);

如果看见网页上输出“hello v8js!”就表示v8js安装成功了。

更多v8js用法可以参考官方文档:http://php.net/manual/zh/book.v8js.php

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:LAMP配置课程基础知识详解

下一篇:13款国内外知名PHP集成环境的优缺点分析,PHP集成环境推荐、PHP