# LuaSandbox

# Introducción

LuaSandbox es una extensión para PHP 7 y PHP 8 que permite ejecutar de manera segura código Lua 5.1 no confiable desde PHP.

Las diferencias con respecto a la extensión Lua :

- LuaSandbox tiene soporte para límites de tiempo y memoria.
- LuaSandbox proporciona un entorno seguro por omisión para la ejecución de código no confiable. Las funciones estándar de Lua han sido examinadas para la seguridad, y varias han sido corregidas en consecuencia.
- LuaSandbox tiene una interfaz PHP más compleja, precisa y potente, pero es menos práctica para los desarrolladores.
- LuaSandbox solo soporta Lua 5.1. Es difícil cambiar esto, ya que LuaSandbox utiliza bibliotecas estándar de Lua fuertemente modificadas, y debido a la falta de compatibilidad ascendente entre las principales versiones de Lua. LuaSandbox tiene como objetivo maximizar la compatibilidad ascendente con los scripts proporcionados por el usuario.

- Instalación/Configuración
  - Requerimientos
  - Instalación
- Diferencias con Lua estándar
- Ejemplos
  - Uso básico de LuaSandbox
- LuaSandbox — La clase LuaSandbox
  - LuaSandbox::callFunction — Llama a una función en una variable global Lua
  - LuaSandbox::disableProfiler — Desactiva el perfilador
  - LuaSandbox::enableProfiler — Activa el perfilador
  - LuaSandbox::getCPUUsage — Recupera el uso actual del tiempo de CPU del entorno Lua
  - LuaSandbox::getMemoryUsage — Recupera el uso actual de la memoria del entorno Lua
  - LuaSandbox::getPeakMemoryUsage — Recupera el pico de uso de memoria del entorno Lua
  - LuaSandbox::getProfilerFunctionReport — Recupera los datos del perfilador
  - LuaSandbox::getVersionInfo — Devuelve las versiones de LuaSandbox y Lua
  - LuaSandbox::loadBinary — Carga un fragmento binario precompilado en el entorno Lua
  - LuaSandbox::loadString — Carga código Lua en el entorno Lua
  - LuaSandbox::pauseUsageTimer — Pausa el temporizador de uso de la CPU
  - LuaSandbox::registerLibrary — Registra un conjunto de funciones PHP como una biblioteca Lua
  - LuaSandbox::setCPULimit — Define la limitación de tiempo CPU para el entorno Lua
  - LuaSandbox::setMemoryLimit — Define el límite de memoria para el entorno Lua
  - LuaSandbox::unpauseUsageTimer — Reanuda el temporizador de uso pausado por LuaSandbox::pauseUsageTimer
  - LuaSandbox::wrapPhpFunction — Envuelve una función PHP en una LuaSandboxFunction
- LuaSandboxFunction — La clase LuaSandboxFunction
  - LuaSandboxFunction::call — Llama a una función Lua
  - LuaSandboxFunction::__construct — No utilizado
  - LuaSandboxFunction::dump — Muestra la función como un blob binario
- LuaSandboxError — La clase LuaSandboxError
- LuaSandboxErrorError — La clase LuaSandboxErrorError
- LuaSandboxFatalError — La clase LuaSandboxFatalError
- LuaSandboxMemoryError — La clase LuaSandboxMemoryError
- LuaSandboxRuntimeError — La clase LuaSandboxRuntimeError
- LuaSandboxSyntaxError — La clase LuaSandboxSyntaxError
- LuaSandboxTimeoutError — La clase LuaSandboxTimeoutError

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open