bingo-soft / script
Scripting API implemented in PHP
Installs: 474
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:project
Requires
- php: ^7.4 || ^8.0
- bingo-soft/el: ^1.1
- bingo-soft/juel: ^1.2
- bingo-soft/util: ^1.3
Requires (Dev)
README
Scripting API
Scripting API implemented in PHP
Installation
Install library, using Composer:
composer require bingo-soft/script
Example 1 (using Juel engine)
$manager = new ScriptEngineManager(); $engine = $manager->getEngineByName("juel"); echo $engine->eval('${1 + 2}'); //prints 3
Example 2 (using Juel engine)
$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
Example 3. Calculate factorial using Lua module
$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
Running tests
./vendor/bin/phpunit ./tests
Dependencies
Lua script engine depends on PHP Lua module. The library is tested against 2.0.7 version.