diff --git a/README.md b/README.md index 8051154..aef9389 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,64 @@ -v8js -==== \ No newline at end of file +V8Js +==== + +This is a PHP extension for Google's V8 Javascript engine + + +Minimum requirements +-------------------- + +- V8 library version 2.5.8 (trunk) + +- 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 V8JsException 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 V8JsException 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 ) +}