V8Js
class V8Js (View source)
Constants
V8_VERSION |
|
FLAG_NONE |
|
FLAG_FORCE_ARRAY |
|
FLAG_PROPAGATE_PHP_EXCEPTIONS |
|
Methods
Initializes and starts V8 engine and returns new V8Js object with it's own V8 context.
Provide a function or method to be used to load required modules. This can be any valid PHP callable.
Provide a function or method to be used to normalise module paths. This can be any valid PHP callable.
Compiles and executes script in object's context with optional identifier string.
Compiles a script in object's context with optional identifier string.
Executes a precompiled script in object's context.
Set the time limit (in milliseconds) for this V8Js object works similar to the set_time_limit php
Set the memory limit (in bytes) for this V8Js object
Set the average object size (in bytes) for this V8Js object.
Returns uncaught pending exception or null if there is no pending exception.
Clears the uncaught pending exception
Registers persistent context independent global Javascript extension.
Returns extensions successfully registered with V8Js::registerExtension().
Creates a custom V8 heap snapshot with the provided JavaScript source embedded.
Details
__construct(string $object_name = "PHP", array $variables = [], array $extensions = [], bool $report_uncaught_exceptions = true, string $snapshot_blob = null)
Initializes and starts V8 engine and returns new V8Js object with it's own V8 context.
Snapshots are supported by V8 4.3.7 and higher.
setModuleLoader(callable $loader)
Provide a function or method to be used to load required modules. This can be any valid PHP callable.
The loader function will receive the normalised module path and should return Javascript code to be executed.
setModuleNormaliser(callable $normaliser)
Provide a function or method to be used to normalise module paths. This can be any valid PHP callable.
This can be used in combination with setModuleLoader to influence normalisation of the module path (which is normally done by V8Js itself but can be overriden this way). The normaliser function will receive the base path of the current module (if any; otherwise an empty string) and the literate string provided to the require method and should return an array of two strings (the new module base path as well as the normalised name). Both are joined by a '/' and then passed on to the module loader (unless the module was cached before).
mixed
executeString(string $script, string $identifier = '', int $flags = V8Js::FLAG_NONE, int $time_limit = 0, int $memory_limit = 0)
Compiles and executes script in object's context with optional identifier string.
A time limit (milliseconds) and/or memory limit (bytes) can be provided to restrict execution. These options will throw a V8JsTimeLimitException or V8JsMemoryLimitException.
resource
compileString($script, string $identifier = '')
Compiles a script in object's context with optional identifier string.
executeScript(resource $script, int $flags = V8Js::FLAG_NONE, int $time_limit = 0, int $memory_limit = 0)
Executes a precompiled script in object's context.
A time limit (milliseconds) and/or memory limit (bytes) can be provided to restrict execution. These options will throw a V8JsTimeLimitException or V8JsMemoryLimitException.
setTimeLimit(int $limit)
Set the time limit (in milliseconds) for this V8Js object works similar to the set_time_limit php
setMemoryLimit(int $limit)
Set the memory limit (in bytes) for this V8Js object
setAverageObjectSize(int $average_object_size)
Set the average object size (in bytes) for this V8Js object.
V8's "amount of external memory" is adjusted by this value for every exported object. V8 triggers a garbage collection once this totals to 192 MB.
V8JsScriptException|null
getPendingException()
Returns uncaught pending exception or null if there is no pending exception.
clearPendingException()
Clears the uncaught pending exception
static bool
registerExtension(string $extension_name, string $code, array $dependencies, bool $auto_enable = false)
Registers persistent context independent global Javascript extension.
NOTE! These extensions exist until PHP is shutdown and they need to be registered before V8 is initialized. For best performance V8 is initialized only once per process thus this call has to be done before any V8Js objects are created!
static string[]
getExtensions()
Returns extensions successfully registered with V8Js::registerExtension().
static string|false
createSnapshot(string $embed_source)
Creates a custom V8 heap snapshot with the provided JavaScript source embedded.
Snapshots are supported by V8 4.3.7 and higher. For older versions of V8 this extension doesn't provide this method.