# LuaSandbox

# Introdução

LuaSandbox é uma extensão para PHP 7 e PHP 8 para permitir a execução segura de código Lua 5.1 não confiável de dentro do PHP.

Diferenças em comparação com a extensão Lua:

- O LuaSandbox tem suporte para limites de tempo e memória.
- LuaSandbox fornece um ambiente seguro padrão para executar código não confiável. As funções do Lua Stock foram revisadas para segurança, e várias foram corrigidas de acordo.
- LuaSandbox tem uma interface PHP que é mais complexa, precisa e poderosa, mas é menos conveniente para desenvolvedores.
- LuaSandbox suporta apenas Lua 5.1. É difícil mudar isso, porque LuaSandbox usa bibliotecas padrão Lua bastante modificadas, e devido à falta de compatibilidade com versões anteriores entre as principais versões Lua. LuaSandbox visa maximizar a compatibilidade com versões anteriores com scripts fornecidos pelo usuário.

- Instalação/Configuração
  - Dependências
  - Instalação
- Diferenças do Lua Padrão
- Exemplos
  - Uso básico para LuaSandbox
- LuaSandbox — A classe LuaSandbox
  - LuaSandbox::callFunction — Chama uma função em uma variável global Lua
  - LuaSandbox::disableProfiler — Desabilita o profiler
  - LuaSandbox::enableProfiler — Habilita o profiler
  - LuaSandbox::getCPUUsage — Obtém o uso atual do tempo de CPU do ambiente Lua
  - LuaSandbox::getMemoryUsage — Obtém o uso atual da memória do ambiente Lua
  - LuaSandbox::getPeakMemoryUsage — Busca o pico de uso de memória do ambiente Lua
  - LuaSandbox::getProfilerFunctionReport — Obtém dados do profiler
  - LuaSandbox::getVersionInfo — Retorna as versões de LuaSandbox e Lua
  - LuaSandbox::loadBinary — Carrega um bloco binário pré-compilado no ambiente Lua
  - LuaSandbox::loadString — Carrega código Lua no ambiente Lua
  - LuaSandbox::pauseUsageTimer — Pausa o cronômetro de uso da CPU
  - LuaSandbox::registerLibrary — Registra um conjunto de funções PHP como uma biblioteca Lua
  - LuaSandbox::setCPULimit — Define o limite de tempo da CPU para o ambiente Lua
  - LuaSandbox::setMemoryLimit — Define o limite de memória para o ambiente Lua
  - LuaSandbox::unpauseUsageTimer — Despausa o cronômetro pausado por LuaSandbox::pauseUsageTimer
  - LuaSandbox::wrapPhpFunction — Encapsula um chamável PHP em uma LuaSandboxFunction
- LuaSandboxFunction — A classe LuaSandboxFunction
  - LuaSandboxFunction::call — Chama uma função Lua
  - LuaSandboxFunction::__construct — Não utilizado
  - LuaSandboxFunction::dump — Despeja a função como um blob binário
- LuaSandboxError — A classe LuaSandboxError
- LuaSandboxErrorError — A classe LuaSandboxErrorError
- LuaSandboxFatalError — A classe LuaSandboxFatalError
- LuaSandboxMemoryError — A classe LuaSandboxMemoryError
- LuaSandboxRuntimeError — A classe LuaSandboxRuntimeError
- LuaSandboxSyntaxError — A classe LuaSandboxSyntaxError
- LuaSandboxTimeoutError — A classe LuaSandboxTimeoutError

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