(PECL luasandbox >= 1.0.0)
LuaSandbox::registerLibrary — Регистрирует набор PHP-функций как библиотеку Lua
Регистрирует набор PHP-функций как библиотеку Lua, чтобы Lua мог вызывать соответствующий код PHP.
Для получения дополнительной информации о вызове функций Lua и возвращаемых значениях смотрите LuaSandboxFunction::call().
libname
Название библиотеки. В состоянии Lua глобальная переменная с этим именем будет установлена в таблицу функций. Если таблица уже существует, к ней будут добавлены новые функции.
functions
Массив (array), где каждый ключ - это имя функции, а каждое значение - это соответствующий вызываемый (callable) PHP-код.
Функция не возвращает значения после выполнения.
Пример #1 Регистрация PHP-функций для вызова из Lua
<?php
// создание нового LuaSandbox
$sandbox = new LuaSandbox();
// регистрация некоторых функций в среде Lua
function frobnosticate( $v ) {
return [ $v + 42 ];
}
$sandbox->registerLibrary( 'php', [
'frobnosticate' => 'frobnosticate',
'output' => function ( $string ) {
echo "$string\n";
},
'error' => function () {
throw new LuaSandboxRuntimeError( "Что-то пошло не так" );
}
] );
?>