LuaSandbox::registerLibrary

(PECL luasandbox >= 1.0.0)

LuaSandbox::registerLibraryRegistra um conjunto de funções PHP como uma biblioteca Lua

Descrição

public function LuaSandbox::registerLibrary(string $libname, array $functions): void

Registra um conjunto de funções PHP como uma biblioteca Lua, para que Lua possa chamar o código PHP relevante.

Para mais informações sobre como chamar funções Lua e os valores de retorno, veja LuaSandboxFunction::call().

Parâmetros

libname
O nome da biblioteca. No estado Lua, a variável global deste nome será definida para a tabela de funções. Se a tabela já existir, as novas funções serão adicionadas a ela.
functions
Um array, onde cada chave é um nome de função e cada valor é um callable PHP correspondente.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Registrando funções PHP para chamar a partir de Lua

<?php

// Cria um novo LuaSandbox
$sandbox = new LuaSandbox();

// Registra algumas funções no ambiente Lua

function frobnosticate( $v ) {
    return [ $v + 42 ];
}

$sandbox->registerLibrary( 'php', [
    'frobnosticate' => 'frobnosticate',
    'output' => function ( $string ) {
        echo "$string\n";
    },
    'error' => function () {
        throw new LuaSandboxRuntimeError( "Algo está errado" );
    }
] );

?>

Veja Também