(PECL luasandbox >= 1.0.0)
LuaSandbox::registerLibrary — Enregistre un ensemble de fonctions PHP en tant que bibliothèque Lua
Enregistre un ensemble de fonctions PHP en tant que bibliothèque Lua, de sorte que Lua puisse appeler le code PHP correspondant.
Pour plus d'informations sur l'appel des fonctions Lua et les valeurs de retour, voir LuaSandboxFunction::call().
libname
Le nom de la bibliothèque. Dans l'état Lua, la variable globale de ce nom sera définie sur la table des fonctions. Si la table existe déjà, les nouvelles fonctions y seront ajoutées.
functions
Un array, où chaque clé est un nom de fonction, et chaque valeur est un callable PHP correspondant.
Aucune valeur n'est retournée.
Exemple #1 Enregistrement de fonctions PHP à appeler depuis Lua
<?php
// créer un nouveau LuaSandbox
$sandbox = new LuaSandbox();
// Enregistrer quelques fonctions dans l'environnement Lua
function frobnosticate( $v ) {
return [ $v + 42 ];
}
$sandbox->registerLibrary( 'php', [
'frobnosticate' => 'frobnosticate',
'output' => function ( $string ) {
echo "$string\n";
},
'error' => function () {
throw new LuaSandboxRuntimeError( "Something is wrong" );
}
] );
?>