The 5th Annual China PHP Conference

La classe V8Js

(PECL v8js >= 0.1.0)


C'est la classe de base de l'extension V8Js. Chaque instance créée depuis cette classe a son propre contexte dans lequel tout le Javascript est compilé et exécuté.

Voir V8Js::__construct() pour plus d'informations.

Synopsis de la classe

V8Js {
/* Constantes */
const string V8_VERSION ;
const integer FLAG_NONE = 1 ;
const integer FLAG_FORCE_ARRAY = 2 ;
/* Méthodes */
public __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 ]] )

Constantes pré-définies


La version du moteur Javascript V8.


Aucun drapeau.


Force tous les objets JS à être des tableaux associatifs en PHP.


add a note add a note

User Contributed Notes 4 notes

mateusz dot charytoniuk at gmail dot com
3 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
5 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)');

yields indeed:
mateusz dot charytoniuk at gmail dot com
1 year ago
v8js can be also used to render server-side javascript components (see: React.js).
stamster at gmail dot com
4 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