PHP 7.2.0 Release Candidate 2 Released

The V8Js class

Introduction

This is the core class for V8Js extension. Each instance created from this class has own context in which all Javascript is compiled and executed.

See V8Js::__construct() for more information.

Class synopsis

V8Js {
/* Constants */
const string V8Js::V8_VERSION ;
const integer V8Js::FLAG_NONE = 1 ;
const integer V8Js::FLAG_FORCE_ARRAY = 2 ;
/* Methods */
__construct ([ string $object_name = "PHP" [, array $variables = array() [, array $extensions = array() [, bool $report_uncaught_exceptions = TRUE ]]]] )
public mixed executeString ( string $script [, string $identifier = "V8Js::executeString()" [, int $flags = V8Js::FLAG_NONE ]] )
public static array getExtensions ( void )
public V8JsException getPendingException ( void )
public static bool registerExtension ( string $extension_name , string $script [, array $dependencies = array() [, bool $auto_enable = FALSE ]] )
}

Predefined Constants

V8Js Node Types

V8Js::V8_VERSION

The V8 Javascript Engine version.

V8Js::FLAG_NONE

No flags.

V8Js::FLAG_FORCE_ARRAY

Forces all JS objects to be associative arrays in PHP.

Table of Contents

add a note add a note

User Contributed Notes 4 notes

up
19
mateusz dot charytoniuk at gmail dot com
4 years ago
This extension can be used to provide server-side and client-side form validation by executing the same JavaScript code at both places.
up
3
Hoffmann dot P-no-sp at m-gmx dot net
9 months ago
You can use function variables (jay!)

So the following works:

$add = function ($a, $b) {
    return $a + $b;
};
$v8 = new V8Js('PHP', array('add' => 'add'));
$result = $v8->executeString('PHP.add(1,2)');
var_dump($result);

yields indeed:
int(3)
up
2
mateusz dot charytoniuk at gmail dot com
2 years ago
v8js can be also used to render server-side javascript components (see: React.js).
up
0
stamster at gmail dot com
7 months ago
Take note that just instantiating V8 class / binary .so will add at least 5ms to your app/script runtime.

Test from LAN (minimum network latency):

PHP 7.0.x w/o instantiating V8JS class: 1ms
PHP 7.0.x with V8JS object: 6-7ms

Running V8 engine v5.8.0

It's not a big deal, but comparing to PhalconPHP framework which adds almost 0 additional latency at runtime, V8JS adds 5-6 times more of latency/overhead.
To Top