0
을 사용하여 실행 PHP 스크립트로 자바 인스턴스를 주입하는 방법 :프로그래밍 나는이와 비슷한 코드가 신
QuercusEngine engine = new QuercusEngine();
Value value = engine.execute("<?php return $obj->getName(); ?>");
System.out.println(value);
내가 자바 인스턴스로 $obj
을 설정할
를 (추가 정보를 원하시면 http://wiki.caucho.com/Quercus:_Command_Line_Interface_(CLI) 참조) . 이런 식으로 뭔가 :
SomeObject someObject = new SomeObject();
engine.setParam("obj", someObject);
는 분명히 이것은 단순한 예이지만 요점은 이미 PHP 스크립트에를 인스턴스화 된 자바 클래스 의 인스턴스를 사용할 수 있도록 할 것입니다. 내가 어떻게 할 수 있니?
Path path = new StringPath("<?php return $obj->getName(); ?>");
QuercusContext quercusContext = new QuercusContext();
ReadStream reader = path.openRead();
QuercusProgram program = QuercusParser.parse(quercusContext, null, reader);
WriteStream out = new WriteStream(StdoutStream.create());
QuercusPage page = new InterpretedPage(program);
Env env = new Env(quercusContext, page, out, null, null);
SomeObject someObj = new SomeObject();
JavaClassDef classDef = env.getJavaClassDefinition(someObject.getClass());
env.setGlobalValue("obj", new JavaValue(env, someObject, classDef));
Value value = NullValue.NULL;
try {
value = program.execute(env);
}
catch (QuercusExitException e) {
}
out.flushBuffer();
out.free();
System.out.println(value);
희망 :