0
0
mirror of https://github.com/phpv8/v8js.git synced 2024-12-22 14:01:53 +00:00
V8 Javascript Engine for PHP — This PHP extension embeds the Google V8 Javascript Engine.
Go to file
2013-04-14 12:23:39 +01:00
js Initial import 2012-04-27 16:26:15 +00:00
samples Make sure all tests and samples use the new exception class name V8JsScriptException. 2013-04-14 00:36:31 +01:00
tests Make sure all tests and samples use the new exception class name V8JsScriptException. 2013-04-14 00:36:31 +01:00
config.m4 Refactor CommonJS modules functionality to store state in the extension globals and context as appropriate. 2013-04-13 00:00:27 +01:00
CREDITS Added my name to the credits :-) 2013-04-09 22:52:52 +01:00
Makefile.frag Initial import 2012-04-27 16:26:15 +00:00
package.xml Fixed build in 5.4+ 2012-07-06 17:21:44 -07:00
php_v8js_macros.h V8 isolates need to be passed into all variable accessor and conversion functions. 2013-04-14 00:36:05 +01:00
php_v8js.h Update copyright information 2012-04-27 16:41:32 +00:00
README.md Make sure all tests and samples use the new exception class name V8JsScriptException. 2013-04-14 00:36:31 +01:00
test.php Make sure all tests and samples use the new exception class name V8JsScriptException. 2013-04-14 00:36:31 +01:00
TODO Initial import 2012-04-27 16:26:15 +00:00
v8js_commonjs.cc Refactor CommonJS modules functionality to store state in the extension globals and context as appropriate. 2013-04-13 00:00:27 +01:00
v8js_convert.cc V8 isolates need to be passed into all variable accessor and conversion functions. 2013-04-14 00:36:05 +01:00
v8js_methods.cc Refactor CommonJS modules functionality to store state in the extension globals and context as appropriate. 2013-04-13 00:00:27 +01:00
v8js_variables.cc V8 isolates need to be passed into all variable accessor and conversion functions. 2013-04-14 00:36:05 +01:00
v8js.cc Fix to start timer thread when there is a memory limit but no time limit. 2013-04-14 12:23:39 +01:00

V8Js

This is a PHP extension for Google's V8 Javascript engine

Minimum requirements

  • V8 JavaScript Engine library version 2.5.8 http://code.google.com/p/v8/ (trunk)

    V8 is Google's open source JavaScript engine. V8 is written in C++ and is used in Google Chrome, the open source browser from Google. V8 implements ECMAScript as specified in ECMA-262, 5th edition, and runs on Windows (XP or newer), Mac OS X (10.5 or newer), and Linux systems that use IA-32, x64, or ARM processors. V8 can run standalone, or can be embedded into any C++ application. You can find more information here: http://code.google.com/p/v8/

  • PHP 5.3.3+ (non-ZTS build preferred) Note: V8 engine is not natively thread safe and this extension has not been designed to work around it either yet and might or might not work properly with ZTS enabled PHP. :)

API

class V8Js
{
    /* Constants */

    const string V8_VERSION;
    const int FLAG_NONE;
    const int FLAG_FORCE_ARRAY;

    /* Methods */

    // Initializes and starts V8 engine and Returns new V8Js object with it's own V8 context.
    public __construct ( [string object_name = "PHP" [, array variables = NULL [, array extensions = NULL [, bool report_uncaught_exceptions = TRUE]]] )

    // Compiles and executes script in object's context with optional identifier string.
    public mixed V8Js::executeString( string script [, string identifier [, int flags = V8Js::FLAG_NONE]])

    // Returns uncaught pending exception or null if there is no pending exception.
    public V8JsScriptException V8Js::getPendingException( void )

    /** Static methods **/

    // 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!
    public static bool V8Js::registerExtension(string ext_name, string script [, array deps [, bool auto_enable = FALSE]])

    // Returns extensions successfully registered with V8Js::registerExtension().
    public static array V8Js::getExtensions( void )
}

final class V8JsScriptException extends Exception
{
    /* Properties */
    protected string JsFileName = NULL;
    protected int JsLineNumber = NULL;
    protected string JsSourceLine = NULL;
    protected string JsTrace = NULL;
    
    /* Methods */
    final public string getJsFileName( void )
    final public int getJsLineNumber( void )
    final public string getJsSourceLine( void )
    final public string getJsTrace( void )
}