# Модуль выполнения Lua-кода LuaSandbox

# Введение

LuaSandbox — модуль для PHP 7 и PHP 8, который разрешает безопасно запускать ненадёжный код Lua 5.1 из PHP.

Отличия от модуля Lua:

- Модуль LuaSandbox поддерживает ограничения по времени и памяти.
- Модуль LuaSandbox предоставляет безопасную среду по умолчанию для запуска ненадёжного кода. Стандартные функции языка Lua проверили на безопасность, а некоторые из них исправили соответствующим образом.
- У LuaSandbox более сложный, точный и мощный PHP-интерфейс, но менее удобный для разработчиков.
- Модуль LuaSandbox поддерживает только Lua 5.1. Это сложно изменить, потому что LuaSandbox использует сильно модифицированные стандартные библиотеки Lua и из-за отсутствия обратной совместимости между основными версиями Lua. LuaSandbox стремится к максимальной обратной совместимости с пользовательскими скриптами.

- Установка и настройка
  - Требования
  - Установка
- Отличия от стандартного Lua
- Примеры
  - Базовое использование LuaSandbox
- LuaSandbox — Класс LuaSandbox
  - LuaSandbox::callFunction — Вызывает функцию в глобальной переменной Lua
  - LuaSandbox::disableProfiler — Отключает профилировщик
  - LuaSandbox::enableProfiler — Включает профилировщик
  - LuaSandbox::getCPUUsage — Возвращает текущее время использования процессора в среде Lua
  - LuaSandbox::getMemoryUsage — Возвращает текущее использование памяти в среде Lua
  - LuaSandbox::getPeakMemoryUsage — Возвращает пиковое использование памяти в среде Lua
  - LuaSandbox::getProfilerFunctionReport — Получает данные профилировщика
  - LuaSandbox::getVersionInfo — Возвращает версии LuaSandbox и Lua
  - LuaSandbox::loadBinary — Загружает предварительно скомпилированный двоичный фрагмент в среду Lua
  - LuaSandbox::loadString — Загружает код Lua в среду Lua
  - LuaSandbox::pauseUsageTimer — Приостанавливает таймер использования процессора
  - LuaSandbox::registerLibrary — Регистрирует набор PHP-функций как библиотеку Lua
  - LuaSandbox::setCPULimit — Устанавливает ограничение времени процессора для среды Lua
  - LuaSandbox::setMemoryLimit — Устанавливает предел памяти для среды Lua
  - LuaSandbox::unpauseUsageTimer — Возобновляет таймер, приостановленный LuaSandbox::pauseUsageTimer
  - LuaSandbox::wrapPhpFunction — Оборачивает вызываемый PHP-объект в LuaSandboxFunction
- LuaSandboxFunction — Класс LuaSandboxFunction
  - LuaSandboxFunction::call — Вызывает Lua-функцию
  - LuaSandboxFunction::__construct — Не используется
  - LuaSandboxFunction::dump — Выгружает функцию в виде BLOB
- LuaSandboxError — Класс LuaSandboxError
- LuaSandboxErrorError — Класс LuaSandboxErrorError
- LuaSandboxFatalError — Класс LuaSandboxFatalError
- LuaSandboxMemoryError — Класс LuaSandboxMemoryError
- LuaSandboxRuntimeError — Класс LuaSandboxRuntimeError
- LuaSandboxSyntaxError — Класс LuaSandboxSyntaxError
- LuaSandboxTimeoutError — Класс LuaSandboxTimeoutError

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