raudius/luar

Lua interpreter written entirely in PHP

0.1.4 2023-07-15 21:24 UTC

This package is auto-updated.

Last update: 2024-04-15 22:57:49 UTC


README

Luar is a Lua interpreter written in PHP.

Luar implements a reduced version of Lua and also packages some essential Lua libraries. As such Luar offers forward-compatibility with Lua with some minor caveats:

  • The math/string libraries use PHP number/string handling; much of the edge-case behaviour has not been replicated (e.g. division by zero, integer overflow)
  • Not all core functions and libraries are available, but a method is provided to inject your own
  • Some language constructs are not implemented (e.g. variable attributes, go-to statements)

Installation

composer require raudius/luar

Usage

For more details read the documentation.

$luar = new Luar();
$luar->assign('world', 'Moon');
$luar->assign('hello_world', function ($name='world') {
    return "Hello, $name!";
});

$program = '
    local greeting = hello_world(world)
    print(greeting)
    
    return greeting
';

$greeting = $luar->eval($program);