Scala Lift - 从scala运行时运行PHP文件

时间:2013-03-06 02:29:52

标签: php scala lift

我不完全确定标题的措辞是否正确,但我正在尝试做的是从Lift框架内运行并执行PHP文件。

我没有对驻留在服务器上的PHP文件进行任何url查询,更感兴趣的是以某种方式通过我的Scala / Lift应用程序运行PHP运行时。

使用案例:我将我的应用打包成.war文件,我通过云提供商托管。我将代码片段上传到所述应用程序,然后运行php文件并执行必要的操作。

我见过有关Bianca的各种帖子,但我希望保持这种设置,并且只需要PHP二进制本身和一些代码就可以让它飞起来。

提前致谢,如果您需要我详细说明,请告诉我。)

2 个答案:

答案 0 :(得分:2)

  

“永远不要说永远,因为恐惧等限制通常只是一种   错觉。”

     

- 迈克尔乔丹

你真正需要的是一个开源(GPL),可嵌入的完整PHP 5实现,完全用Java编写!

Caucho's Quercus PHP Java runtime就是这样,它将允许您在没有外部库或本机代码的Java应用程序中运行PHP。

以下是我在this answer

中找到的Quercus-PHP-in-Java代码示例
import javax.script.ScriptEngine;
import com.caucho.quercus.script.QuercusScriptEngineFactory;

QuercusScriptEngineFactory factory = new QuercusScriptEngineFactory();
ScriptEngine engine = factory.getScriptEngine();

String phpCode = "<?php $foo = strlen('abc'); print $foo; return 'yikes'; ?>"; //PHP Code as String
Object o = engine.eval(phpCode);
System.out.println(o);

将此代码转换为惯用的Scala应该不费吹灰之力。显然,'phpCode'变量可以从外部PHP文件内容等构建。

让我们知道你是如何上场的; - )

答案 1 :(得分:0)

这是一个奇怪的要求,但如果这是你需要做的,你可以使用ProcessBuilder来执行PHP脚本from the command line并与之交互。