Hi all,

I'm trying to programmatically execute PHP scripts from within Java
[1] (actually Scala in my case but it's the same). I took some
inspiration from CliQuercus.java as some features were not activated
by default. For example, the database connection is not activated by
default but it's works fine now: I can execute any PHP script.

Now, I'm trying to access the functions and classes that are available
in the compiled pages, using the Quercus Java API [2]. The
documentation is not really helpful there and I don't find the
documentation explaining the whole architecture. I understand that the
main classes are QuercusContext, Env and QuercusPage, but I don't
understand the exact relations between them. For example, I never know
where I have to call init() and start(): I'm not sure about the
semantics of them, if they are needed or not and on which classes I'm
supposed to call them. I also see several getClass functions...

Here is what I have so far:

[[
class QuercusLike {
  val quercusContext = {
    val context = new QuercusContext
    context.init()
    context.start()
    context.setDatabase(null)
    context
  }
  def update(name:String, value:String):Unit =
quercusContext.setIni(name, value)
  def execute(filename:File):Unit = {
    val path:Path = quercusContext.getPwd.lookup(filename.getAbsolutePath)
    val page:QuercusPage = quercusContext.parse(path)
    val os:WriteStream = new WriteStream(StdoutStream.create)
    os.setNewlineString("\n")
    os.setEncoding("utf-8")
    val env:Env = quercusContext.createEnv(page, os, null, null)
    env.start()
    env.execute()
    env.close()
    os.flush()
  }
}

class Test extends FunSuite {
  test("execute php script") {
    val phpfile = new File("/home/betehess/php/test/index.php")
    val quercus = new QuercusLike
    quercus("include_path") = ".:/home/betehess/php/"
    quercus.execute(phpfile)
  }
}
]]

My goal:
* compile a bunch of PHP files
* instantiating PHP objects from Java (these objects are defining in
the compiled files)
* calling the methods for these PHP objects

Alexandre Bertails, W3C Systems Team.

[1] 
http://wiki.caucho.com/Quercus:_Command_Line_Interface_%28CLI%29#Programmatically_executing_PHP_scripts_from_within_Java
[2] 
http://wiki.caucho.com/Quercus:_Command_Line_Interface_%28CLI%29#Returning_objects_example


_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to