PHP 8.4.6 Released!

The V8Js class

(PECL v8js >= 0.1.0)

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

class V8Js {
/* Constants */
const int FLAG_NONE = 1;
/* Methods */
public __construct(
    string $object_name = "PHP",
    array $variables = array(),
    array $extensions = array(),
    bool $report_uncaught_exceptions = true
)
public executeString(string $script, string $identifier = "V8Js::executeString()", int $flags = V8Js::FLAG_NONE): mixed
public static getExtensions(): array
public static registerExtension(
    string $extension_name,
    string $script,
    array $dependencies = array(),
    bool $auto_enable = false
): bool
}

Predefined Constants

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

User Contributed Notes

mateusz dot charytoniuk at gmail dot com
11 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.
Hoffmann dot P-no-sp at m-gmx dot net
8 years 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)
mateusz dot charytoniuk at gmail dot com
9 years ago
v8js can be also used to render server-side javascript components (see: React.js).
To Top