com.caucho.quercus
Class Quercus

java.lang.Object
  extended by com.caucho.quercus.Quercus
Direct Known Subclasses:
ResinQuercus

public class Quercus
extends java.lang.Object

Facade for the PHP language.


Field Summary
static IniDefinition INI_ALWAYS_POPULATE_RAW_POST_DATA
           
static IniDefinition INI_INCLUDE_PATH
           
static IniDefinition INI_REGISTER_LONG_ARRAYS
           
static IniDefinition INI_UNICODE_FALLBACK_ENCODING
           
static IniDefinition INI_UNICODE_FROM_ERROR_MODE
           
static IniDefinition INI_UNICODE_FROM_ERROR_SUBST_CHAR
           
static IniDefinition INI_UNICODE_HTTP_INPUT_ENCODING
           
static IniDefinition INI_UNICODE_OUTPUT_ENCODING
           
static IniDefinition INI_UNICODE_RUNTIME_ENCODING
           
static IniDefinition INI_UNICODE_SCRIPT_ENCODING
           
static IniDefinition INI_UNICODE_SEMANTICS
           
 
Constructor Summary
Quercus()
          Constructor.
 
Method Summary
 void addImplClass(java.lang.String name, java.lang.Class type)
          Adds a impl class
 void addJavaClass(java.lang.String name, java.lang.Class type)
          Adds a java class
 void addJavaClass(java.lang.String phpName, java.lang.String className)
          Adds a java class
 void addModule(QuercusModule module)
          Adds a module
 void clearDefinitionCache()
          Clears the definition cache.
 void close()
           
 Env createEnv(QuercusPage page, WriteStream out, HttpServletRequest request, HttpServletResponse response)
           
protected  ModuleContext createModuleContext(java.lang.ClassLoader loader)
           
protected  PageManager createPageManager()
           
protected  QuercusSessionManager createSessionManager()
           
 java.lang.String createStaticName()
           
 StringValue createString(java.lang.String v)
           
 void destroySession(java.lang.String sessionId)
          Removes the session from the backing.
static Value exnConstructor(Env env, Value obj, java.lang.String msg)
           
 ClassDef findClass(java.lang.String name)
          Returns the class with the given name.
 int findClassId(java.lang.String name)
          Returns the id for a function name.
 javax.sql.DataSource findDatabase(java.lang.String driver, java.lang.String url)
          Gets the default data source.
 AbstractFunction findFunction(java.lang.String name)
          Returns the function with the given name.
 int findFunctionId(java.lang.String name)
          Returns the id for a function name.
 AbstractFunction findFunctionImpl(java.lang.String name)
          Returns the function with the given name.
 ClassDef findJavaClassWrapper(java.lang.String name)
          Finds the java class wrapper.
 AbstractFunction findLowerFunctionImpl(java.lang.String lowerName)
          Returns the function with the given name.
 QuercusModule findModule(java.lang.String name)
          Returns the module with the given name.
 ClassDef[] getClassDefMap()
          Returns the undefined functions
 int getClassId(java.lang.String name)
          Returns the id for a class name.
 int getClassIdCount()
          Returns the number of classes
 java.util.HashMap<java.lang.String,ClassDef> getClassMap()
          Returns the class maps.
 java.sql.Connection getConnection(java.sql.Connection conn)
          Unwrap connection if necessary.
 Value getConstant(java.lang.String name)
          Returns a named constant.
 int getConstantId(java.lang.String name)
          Returns the id for a constant
 int getConstantIdSize()
          Returns the number of defined constants
 java.util.HashMap<java.lang.String,Value> getConstMap()
           
 java.lang.String getCookieName()
           
 javax.sql.DataSource getDatabase()
          Gets the default data source.
 long getDefCacheHitCount()
          Returns the definition cache hit count.
 long getDefCacheMissCount()
          Returns the definition cache miss count.
 ArrayValue getDefinedFunctions()
          Returns an array of the defined functions.
 long getDependencyCheckInterval()
           
 Value getExtensionFuncs(java.lang.String name)
          Returns true if an extension is loaded.
 int getFunctionId(java.lang.String name)
          Returns the id for a function name.
 int getFunctionIdCount()
          Returns the number of functions
 AbstractFunction[] getFunctionMap()
          Returns the undefined functions
 Path getIncludeCache(java.lang.String include, java.lang.String includePath, Path pwd, Path scriptPwd)
          Returns an include path.
 boolean getIniBoolean(java.lang.String name)
          Returns an ini value.
 IniDefinitions getIniDefinitions()
          Returns the IniDefinitions for all ini that have been defined by modules.
 long getIniLong(java.lang.String name)
          Returns an ini value as a long.
 java.util.IdentityHashMap<java.lang.String,Value> getIniMap(boolean create)
          Returns a map of the ini values that have been explicitly set.
 JavaClassDef getJavaClassDefinition(java.lang.Class type, java.lang.String className)
          Adds a java class
 JavaClassDef getJavaClassDefinition(java.lang.String className)
          Adds a java class
 java.util.HashSet<java.lang.String> getLoadedExtensions()
          Returns true if an extension is loaded.
 ModuleContext getLocalContext()
          Returns the context for this class loader.
 ModuleContext getLocalContext(java.lang.ClassLoader loader)
           
 ModuleContext getModuleContext()
          Returns the module context.
 java.util.Collection<ModuleInfo> getModules()
           
 java.util.HashSet<ModuleStartupListener> getModuleStartupListeners()
          Returns a list of the modules that have some startup code to run.
 java.lang.String getMysqlVersion()
           
 java.lang.String getPhpVersion()
           
 Path getPwd()
          Returns the working directory.
 QuercusSessionManager getQuercusSessionManager()
           
 java.lang.String getScriptEncoding()
           
 Value getServerEnv(StringValue name)
          Gets a server env value.
 java.util.HashMap<Value,Value> getServerEnvMap()
          Returns the server env map.
 ServletContext getServletContext()
           
 java.lang.Object getSpecial(java.lang.String key)
          Loads a special value
 java.sql.Statement getStatement(java.sql.Statement stmt)
          Unwrap statement if necessary.
 QuercusClass getStdClass()
          Returns the stdClass definition.
 java.lang.String getVersion()
           
 java.lang.String getVersionDate()
           
 Path getWorkDir()
           
 StringValue intern(java.lang.String name)
          Interns a string.
 boolean isAllowUrlFopen()
           
 boolean isAllowUrlInclude()
           
 boolean isCompile()
          true if the pages should be compiled.
 boolean isExtensionLoaded(java.lang.String name)
          Returns true if an extension is loaded.
 boolean isPro()
           
 boolean isRequireSource()
           
 boolean isResin()
           
 boolean isStrict()
          Gets the strict mode.
static boolean isSuperGlobal(java.lang.String name)
          Returns true if the variable is a superglobal.
 boolean isUnicodeSemantics()
          Returns true if unicode.semantics is on.
 SessionArrayValue loadSession(Env env, java.lang.String sessionId)
          Loads the session from the backing.
 void markForPoolRemoval(java.sql.Connection conn)
           
static Value objectToValue(java.lang.Object obj)
           
 QuercusPage parse(Path path)
          Parses a quercus program.
 QuercusPage parse(Path path, java.lang.String fileName, int line)
          Parses a quercus program.
 QuercusPage parse(ReadStream is)
          Parses a quercus program.
 QuercusProgram parseCode(java.lang.String code)
          Parses a quercus string.
 QuercusProgram parseEvalExpr(java.lang.String code)
          Parses a quercus string.
 AbstractFunction parseFunction(java.lang.String name, java.lang.String args, java.lang.String code)
          Parses a function.
 void putIncludeCache(java.lang.String include, java.lang.String includePath, Path pwd, Path scriptPwd, Path path)
          Adds an include path.
 void saveSession(Env env, SessionArrayValue session)
          Saves the session to the backing.
 void setCompile(boolean isCompile)
          Set true if pages should be compiled.
 void setCompileFailover(boolean isCompileFailover)
           
 void setDatabase(javax.sql.DataSource database)
          Sets the default data source.
 void setIni(java.lang.String name, java.lang.String value)
          Sets an ini value.
 void setIni(java.lang.String name, StringValue value)
          Sets an ini value.
 void setIniFile(Path path)
          Sets an ini file.
 void setLazyCompile(boolean isCompile)
          Set true if pages should be compiled.
 void setMysqlVersion(java.lang.String version)
           
 void setPhpVersion(java.lang.String version)
           
 void setPwd(Path path)
          Sets the working directory.
 void setRequireSource(boolean isRequireSource)
           
 void setScriptEncoding(java.lang.String encoding)
           
 void setServerEnv(java.lang.String name, java.lang.String value)
          Sets a server env value.
 void setServerEnv(StringValue name, StringValue value)
          Sets a server env value.
 void setServletContext(ServletContext servletContext)
           
 void setSpecial(java.lang.String key, java.lang.Object value)
          Saves a special value
 void setStrict(boolean isStrict)
          Sets the strict mode.
 void setWorkDir(Path workDir)
           
 void start()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INI_INCLUDE_PATH

public static final IniDefinition INI_INCLUDE_PATH

INI_REGISTER_LONG_ARRAYS

public static final IniDefinition INI_REGISTER_LONG_ARRAYS

INI_ALWAYS_POPULATE_RAW_POST_DATA

public static final IniDefinition INI_ALWAYS_POPULATE_RAW_POST_DATA

INI_UNICODE_SEMANTICS

public static final IniDefinition INI_UNICODE_SEMANTICS

INI_UNICODE_FALLBACK_ENCODING

public static final IniDefinition INI_UNICODE_FALLBACK_ENCODING

INI_UNICODE_FROM_ERROR_MODE

public static final IniDefinition INI_UNICODE_FROM_ERROR_MODE

INI_UNICODE_FROM_ERROR_SUBST_CHAR

public static final IniDefinition INI_UNICODE_FROM_ERROR_SUBST_CHAR

INI_UNICODE_HTTP_INPUT_ENCODING

public static final IniDefinition INI_UNICODE_HTTP_INPUT_ENCODING

INI_UNICODE_OUTPUT_ENCODING

public static final IniDefinition INI_UNICODE_OUTPUT_ENCODING

INI_UNICODE_RUNTIME_ENCODING

public static final IniDefinition INI_UNICODE_RUNTIME_ENCODING

INI_UNICODE_SCRIPT_ENCODING

public static final IniDefinition INI_UNICODE_SCRIPT_ENCODING
Constructor Detail

Quercus

public Quercus()
Constructor.

Method Detail

createEnv

public Env createEnv(QuercusPage page,
                     WriteStream out,
                     HttpServletRequest request,
                     HttpServletResponse response)

getPwd

public Path getPwd()
Returns the working directory.


setPwd

public void setPwd(Path path)
Sets the working directory.


getWorkDir

public Path getWorkDir()

setWorkDir

public void setWorkDir(Path workDir)

getCookieName

public java.lang.String getCookieName()

getDependencyCheckInterval

public long getDependencyCheckInterval()

getVersion

public java.lang.String getVersion()

getVersionDate

public java.lang.String getVersionDate()

createPageManager

protected PageManager createPageManager()

createSessionManager

protected QuercusSessionManager createSessionManager()

getLocalContext

public final ModuleContext getLocalContext()
Returns the context for this class loader.


getLocalContext

public ModuleContext getLocalContext(java.lang.ClassLoader loader)

createModuleContext

protected ModuleContext createModuleContext(java.lang.ClassLoader loader)

getModuleContext

public ModuleContext getModuleContext()
Returns the module context.


getQuercusSessionManager

public QuercusSessionManager getQuercusSessionManager()

isCompile

public boolean isCompile()
true if the pages should be compiled.


isPro

public boolean isPro()

isResin

public boolean isResin()

isUnicodeSemantics

public boolean isUnicodeSemantics()
Returns true if unicode.semantics is on.


isAllowUrlInclude

public boolean isAllowUrlInclude()

isAllowUrlFopen

public boolean isAllowUrlFopen()

createString

public StringValue createString(java.lang.String v)

setCompile

public void setCompile(boolean isCompile)
Set true if pages should be compiled.


setLazyCompile

public void setLazyCompile(boolean isCompile)
Set true if pages should be compiled.


setCompileFailover

public void setCompileFailover(boolean isCompileFailover)

getScriptEncoding

public java.lang.String getScriptEncoding()

setScriptEncoding

public void setScriptEncoding(java.lang.String encoding)

getMysqlVersion

public java.lang.String getMysqlVersion()

setMysqlVersion

public void setMysqlVersion(java.lang.String version)

getPhpVersion

public java.lang.String getPhpVersion()

setPhpVersion

public void setPhpVersion(java.lang.String version)

setServletContext

public void setServletContext(ServletContext servletContext)

getServletContext

public ServletContext getServletContext()

setDatabase

public void setDatabase(javax.sql.DataSource database)
Sets the default data source.


getDatabase

public javax.sql.DataSource getDatabase()
Gets the default data source.


findDatabase

public javax.sql.DataSource findDatabase(java.lang.String driver,
                                         java.lang.String url)
Gets the default data source.


getConnection

public java.sql.Connection getConnection(java.sql.Connection conn)
Unwrap connection if necessary.


markForPoolRemoval

public void markForPoolRemoval(java.sql.Connection conn)

getStatement

public java.sql.Statement getStatement(java.sql.Statement stmt)
Unwrap statement if necessary.


setStrict

public void setStrict(boolean isStrict)
Sets the strict mode.


isStrict

public boolean isStrict()
Gets the strict mode.


setRequireSource

public void setRequireSource(boolean isRequireSource)

isRequireSource

public boolean isRequireSource()

addModule

public void addModule(QuercusModule module)
               throws ConfigException
Adds a module

Throws:
ConfigException

addJavaClass

public void addJavaClass(java.lang.String name,
                         java.lang.Class type)
                  throws ConfigException
Adds a java class

Throws:
ConfigException

addJavaClass

public void addJavaClass(java.lang.String phpName,
                         java.lang.String className)
Adds a java class


addImplClass

public void addImplClass(java.lang.String name,
                         java.lang.Class type)
                  throws ConfigException
Adds a impl class

Throws:
ConfigException

getJavaClassDefinition

public JavaClassDef getJavaClassDefinition(java.lang.Class type,
                                           java.lang.String className)
Adds a java class


getJavaClassDefinition

public JavaClassDef getJavaClassDefinition(java.lang.String className)
Adds a java class


findJavaClassWrapper

public ClassDef findJavaClassWrapper(java.lang.String name)
Finds the java class wrapper.


setIniFile

public void setIniFile(Path path)
Sets an ini file.


getIniDefinitions

public IniDefinitions getIniDefinitions()
Returns the IniDefinitions for all ini that have been defined by modules.


getIniMap

public java.util.IdentityHashMap<java.lang.String,Value> getIniMap(boolean create)
Returns a map of the ini values that have been explicitly set.


setIni

public void setIni(java.lang.String name,
                   StringValue value)
Sets an ini value.


setIni

public void setIni(java.lang.String name,
                   java.lang.String value)
Sets an ini value.


getIniBoolean

public boolean getIniBoolean(java.lang.String name)
Returns an ini value.


getIniLong

public long getIniLong(java.lang.String name)
Returns an ini value as a long.


setServerEnv

public void setServerEnv(java.lang.String name,
                         java.lang.String value)
Sets a server env value.


setServerEnv

public void setServerEnv(StringValue name,
                         StringValue value)
Sets a server env value.


getServerEnv

public Value getServerEnv(StringValue name)
Gets a server env value.


getServerEnvMap

public java.util.HashMap<Value,Value> getServerEnvMap()
Returns the server env map.


getIncludeCache

public Path getIncludeCache(java.lang.String include,
                            java.lang.String includePath,
                            Path pwd,
                            Path scriptPwd)
Returns an include path.


putIncludeCache

public void putIncludeCache(java.lang.String include,
                            java.lang.String includePath,
                            Path pwd,
                            Path scriptPwd,
                            Path path)
Adds an include path.


getDefCacheHitCount

public long getDefCacheHitCount()
Returns the definition cache hit count.


getDefCacheMissCount

public long getDefCacheMissCount()
Returns the definition cache miss count.


clearDefinitionCache

public void clearDefinitionCache()
Clears the definition cache.


parse

public QuercusPage parse(Path path)
                  throws java.io.IOException
Parses a quercus program.

Parameters:
path - the source file path
Returns:
the parsed program
Throws:
java.io.IOException

parse

public QuercusPage parse(Path path,
                         java.lang.String fileName,
                         int line)
                  throws java.io.IOException
Parses a quercus program.

Parameters:
path - the source file path
Returns:
the parsed program
Throws:
java.io.IOException

parse

public QuercusPage parse(ReadStream is)
                  throws java.io.IOException
Parses a quercus program.

Parameters:
path - the source file path
Returns:
the parsed program
Throws:
java.io.IOException

parseCode

public QuercusProgram parseCode(java.lang.String code)
                         throws java.io.IOException
Parses a quercus string.

Parameters:
code - the source code
Returns:
the parsed program
Throws:
java.io.IOException

parseEvalExpr

public QuercusProgram parseEvalExpr(java.lang.String code)
                             throws java.io.IOException
Parses a quercus string.

Parameters:
code - the source code
Returns:
the parsed program
Throws:
java.io.IOException

parseFunction

public AbstractFunction parseFunction(java.lang.String name,
                                      java.lang.String args,
                                      java.lang.String code)
                               throws java.io.IOException
Parses a function.

Parameters:
args - the arguments
code - the source code
Returns:
the parsed program
Throws:
java.io.IOException

findFunction

public AbstractFunction findFunction(java.lang.String name)
Returns the function with the given name.


findFunctionImpl

public AbstractFunction findFunctionImpl(java.lang.String name)
Returns the function with the given name.


findLowerFunctionImpl

public AbstractFunction findLowerFunctionImpl(java.lang.String lowerName)
Returns the function with the given name.


getDefinedFunctions

public ArrayValue getDefinedFunctions()
Returns an array of the defined functions.


getFunctionId

public int getFunctionId(java.lang.String name)
Returns the id for a function name.


findFunctionId

public int findFunctionId(java.lang.String name)
Returns the id for a function name.


getFunctionIdCount

public int getFunctionIdCount()
Returns the number of functions


getFunctionMap

public AbstractFunction[] getFunctionMap()
Returns the undefined functions


getClassId

public int getClassId(java.lang.String name)
Returns the id for a class name.


findClassId

public int findClassId(java.lang.String name)
Returns the id for a function name.


getClassIdCount

public int getClassIdCount()
Returns the number of classes


getClassDefMap

public ClassDef[] getClassDefMap()
Returns the undefined functions


getConstantId

public int getConstantId(java.lang.String name)
Returns the id for a constant


getConstantIdSize

public int getConstantIdSize()
Returns the number of defined constants


isSuperGlobal

public static boolean isSuperGlobal(java.lang.String name)
Returns true if the variable is a superglobal.


getStdClass

public QuercusClass getStdClass()
Returns the stdClass definition.


findClass

public ClassDef findClass(java.lang.String name)
Returns the class with the given name.


getClassMap

public java.util.HashMap<java.lang.String,ClassDef> getClassMap()
Returns the class maps.


findModule

public QuercusModule findModule(java.lang.String name)
Returns the module with the given name.


getModuleStartupListeners

public java.util.HashSet<ModuleStartupListener> getModuleStartupListeners()
Returns a list of the modules that have some startup code to run.


isExtensionLoaded

public boolean isExtensionLoaded(java.lang.String name)
Returns true if an extension is loaded.


getLoadedExtensions

public java.util.HashSet<java.lang.String> getLoadedExtensions()
Returns true if an extension is loaded.


getExtensionFuncs

public Value getExtensionFuncs(java.lang.String name)
Returns true if an extension is loaded.


getModules

public java.util.Collection<ModuleInfo> getModules()

getConstMap

public java.util.HashMap<java.lang.String,Value> getConstMap()

intern

public StringValue intern(java.lang.String name)
Interns a string.


getConstant

public Value getConstant(java.lang.String name)
Returns a named constant.


createStaticName

public java.lang.String createStaticName()

loadSession

public SessionArrayValue loadSession(Env env,
                                     java.lang.String sessionId)
Loads the session from the backing.


saveSession

public void saveSession(Env env,
                        SessionArrayValue session)
Saves the session to the backing.


destroySession

public void destroySession(java.lang.String sessionId)
Removes the session from the backing.


getSpecial

public java.lang.Object getSpecial(java.lang.String key)
Loads a special value


setSpecial

public void setSpecial(java.lang.String key,
                       java.lang.Object value)
Saves a special value


objectToValue

public static Value objectToValue(java.lang.Object obj)

start

public void start()

close

public void close()

exnConstructor

public static Value exnConstructor(Env env,
                                   Value obj,
                                   java.lang.String msg)