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
V8Js
{
/* Constants */
/* Methods */
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 bool registerExtension
( string
}$extension_name
, string $script
[, array $dependencies
= array()
[, bool $auto_enable
= FALSE
]] )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
- V8Js::__construct — Construct a new V8Js object
- V8Js::executeString — Execute a string as Javascript code
- V8Js::getExtensions — Return an array of registered extensions
- V8Js::getPendingException — Return pending uncaught Javascript exception
- V8Js::registerExtension — Register Javascript extensions for V8Js
Коментарии
This extension can be used to provide server-side and client-side form validation by executing the same JavaScript code at both places.
v8js can be also used to render server-side javascript components (see: React.js).
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)