PHP的嵌入式脚本语言?

Rol*_*olf 7 javascript php scripting embedded-language

我想知道是否有人知道一个可以嵌入到PHP的漂亮的脚本语言?Javascript将是最喜欢的,虽然有几次尝试,他们要么太摇摇欲坠/慢/过时(phpjs,j4p5)或在共享主机(pecl spidermonkey)上起床和运行真的很痛苦.

背景是:我想有一种语言用于控制服务器上的PHP,但它也应该支持一些逻辑,所以yaml,xml或json是不够的.我已经研究过LUA口译员和mediakwiki的"冬季",但他们都要么依靠外部引擎,要么拥有强大的绑定功能.

pecl spidermonkey binding似乎是最完整的,你可以将vars,函数和整个对象注册到js-engine.有没有人知道任何可能接近我正在寻找的系统或语言?

最好

罗尔夫

小智 2

我理解你的担忧。即使对于可信源,PHP 也提供了比整个 Web 请求环境所需的更多访问权限。即使脚本编写者是值得信赖的,即使他们只会因脚本错误而伤害自己,但更受约束的脚本环境将更容易让他们使用,也更容易让您支持。

您想要一些可以沙箱关闭的东西,只能访问您明确分配给其范围的资源,并且在“游戏中的游戏”运行时环境中执行,而不是在 PHP 自己的运行时环境中执行。

一种方法是对用户提交的脚本使用 Web 模板语言。它们提供一定程度的控制(例如变量分配),并关闭其他选项,例如您不能编写无限循环。我在 Java 应用程序中使用 Velocity 来实现此目的;我认为像 Smarty 这样的东西可能在 PHP 中工作,但我没有直接使用它来实现此目的的经验。

如果脚本需要执行的操作受到域的限制,另一种方法是实现域特定语言 (DSL)。我在这个答案中提到过。

除此之外,我不知道有任何脚本语言的纯 PHP 实现。这是我自己感兴趣的事情。