# LuaSandbox

# Introduction

LuaSandbox est une extension pour PHP 7 et PHP 8 permettant d'exécuter en toute sécurité du code Lua 5.1 non fiable à partir de PHP.

Les différences par rapport à l'extension Lua :

- LuaSandbox a un support pour les limites de temps et de mémoire.
- LuaSandbox fournit un environnement par défaut sécurisé pour l'exécution de code non fiable. Les fonctions Lua standard ont été examinées pour la sécurité, et plusieurs ont été corrigées en conséquence.
- LuaSandbox a une interface PHP plus complexe, précise et puissante, mais elle est moins pratique pour les développeurs.
- LuaSandbox ne supporte que Lua 5.1. Il est difficile de changer cela, car LuaSandbox utilise des bibliothèques standard Lua fortement modifiées, et en raison du manque de compatibilité ascendante entre les principales versions de Lua. LuaSandbox vise à maximiser la compatibilité ascendante avec les scripts fournis par l'utilisateur.

- Installation/Configuration
  - Pré-requis
  - Installation
- Différences avec Lua standard
- Exemples
  - Utilisation de base de LuaSandbox
- LuaSandbox — La classe LuaSandbox
  - LuaSandbox::callFunction — Appelle une fonction dans une variable globale Lua
  - LuaSandbox::disableProfiler — Désactive le profileur
  - LuaSandbox::enableProfiler — Active le profileur
  - LuaSandbox::getCPUUsage — Récupère l'utilisation actuelle du temps CPU de l'environnement Lua
  - LuaSandbox::getMemoryUsage — Récupère l'utilisation actuelle de la mémoire de l'environnement Lua
  - LuaSandbox::getPeakMemoryUsage — Récupère le pic d'utilisation de la mémoire de l'environnement Lua
  - LuaSandbox::getProfilerFunctionReport — Récupère les données du profileur
  - LuaSandbox::getVersionInfo — Renvoie les versions de LuaSandbox et Lua
  - LuaSandbox::loadBinary — Charge un morceau binaire précompilé dans l'environnement Lua
  - LuaSandbox::loadString — Charge du code Lua dans l'environnement Lua
  - LuaSandbox::pauseUsageTimer — Pause le minuteur d'utilisation du CPU
  - LuaSandbox::registerLibrary — Enregistre un ensemble de fonctions PHP en tant que bibliothèque Lua
  - LuaSandbox::setCPULimit — Définit la limite de temps CPU pour l'environnement Lua
  - LuaSandbox::setMemoryLimit — Définit la limite de mémoire pour l'environnement Lua
  - LuaSandbox::unpauseUsageTimer — Relance le minuteur mis en pause par LuaSandbox::pauseUsageTimer
  - LuaSandbox::wrapPhpFunction — Envelope une fonction PHP dans une LuaSandboxFunction
- LuaSandboxFunction — La classe LuaSandboxFunction
  - LuaSandboxFunction::call — Appelle une fonction Lua
  - LuaSandboxFunction::__construct — Inutilisé
  - LuaSandboxFunction::dump — Affiche la fonction sous forme de blob binaire
- LuaSandboxError — La classe LuaSandboxError
- LuaSandboxErrorError — La classe LuaSandboxErrorError
- LuaSandboxFatalError — La classe LuaSandboxFatalError
- LuaSandboxMemoryError — La classe LuaSandboxMemoryError
- LuaSandboxRuntimeError — La classe LuaSandboxRuntimeError
- LuaSandboxSyntaxError — La classe LuaSandboxSyntaxError
- LuaSandboxTimeoutError — La classe LuaSandboxTimeoutError

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