Scripting API implemented in PHP
Install library, using Composer:
composer require bingo-soft/script
$manager = new ScriptEngineManager();
$engine = $manager->getEngineByName("juel");
echo $engine->eval('${1 + 2}'); //prints 3
$manager = new ScriptEngineManager();
$engine = $manager->getEngineByName("juel");
$simple = new class () {
public $propFloat = 1.23;
public function foo(): int
{
return 11;
}
public function bar(): int
{
return 23;
}
};
$engine->put("simple", $simple);
echo $engine->eval('${simple.propFloat + 2}'); //prints 3.23
echo $engine->eval('${simple.bar() + simple.foo()}'); //prints 34
$manager = new ScriptEngineManager();
$engine = $manager->getEngineByName("lua");
$engine->put('a', 5);
echo $engine->eval(<<<CODE
factorial = function ( n )
if n == 1 then return 1
else return n * factorial( n - 1 )
end
end
return factorial(a)
CODE
); //prints 120
./vendor/bin/phpunit ./tests
Lua script engine depends on PHP Lua module. The library is tested against 2.0.7 version.