LuaSandbox

目次

The LuaSandbox class

はじめに

The LuaSandbox class creates a Lua environment and allows for execution of Lua code.

クラス概要

LuaSandbox
class LuaSandbox {
/* 定数 */
const int LuaSandbox::SAMPLES = 0;
const int LuaSandbox::SECONDS = 1;
const int LuaSandbox::PERCENT = 2;
/* メソッド */
public arraybool callFunction(string $name, mixed ...$args)
public void disableProfiler()
public bool enableProfiler(float $period = 0.02)
public float getCPUUsage()
public int getMemoryUsage()
public int getPeakMemoryUsage()
public array getProfilerFunctionReport(int $units = LuaSandbox::SECONDS)
public static array getVersionInfo()
public LuaSandboxFunction loadBinary(string $code, string $chunkName = '')
public LuaSandboxFunction loadString(string $code, string $chunkName = '')
public bool pauseUsageTimer()
public void registerLibrary(string $libname, array $functions)
public void setCPULimit(floatbool $limit)
public void setMemoryLimit(int $limit)
public void unpauseUsageTimer()
public LuaSandboxFunction wrapPhpFunction(callable $function)
}

定義済み定数

LuaSandbox::SAMPLES

Used with LuaSandbox::getProfilerFunctionReport to return timings in samples.

LuaSandbox::SECONDS

Used with LuaSandbox::getProfilerFunctionReport to return timings in seconds.

LuaSandbox::PERCENT

Used with LuaSandbox::getProfilerFunctionReport to return timings in percentages of the total.

The LuaSandboxFunction class

はじめに

Represents a Lua function, allowing it to be called from PHP.

A LuaSandboxFunction may be obtained as a return value from Lua, as a parameter passed to a callback from Lua, or by using LuaSandbox::wrapPhpFunction, LuaSandbox::loadString, or LuaSandbox::loadBinary.

クラス概要

LuaSandboxFunction
class LuaSandboxFunction {
/* メソッド */
public arraybool call(string ...$args)
public string dump()
}

The LuaSandboxError class

はじめに

Base class for LuaSandbox exceptions

クラス概要

LuaSandboxError
class LuaSandboxError extends Exception {
/* 定数 */
const int LuaSandboxError::RUN = 2;
const int LuaSandboxError::SYNTAX = 3;
const int LuaSandboxError::MEM = 4;
const int LuaSandboxError::ERR = 5;
/* 継承したプロパティ */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private Throwablenull $previous = null;
/* 継承したメソッド */
final public string Exception::getMessage()
final public Throwablenull Exception::getPrevious()
final public int Exception::getCode()
final public string Exception::getFile()
final public int Exception::getLine()
final public array Exception::getTrace()
final public string Exception::getTraceAsString()
public string Exception::__toString()
private void Exception::__clone()
}

定義済み定数

LuaSandboxError::RUN

LuaSandboxError::SYNTAX

LuaSandboxError::MEM

LuaSandboxError::ERR

The LuaSandboxErrorError class

はじめに

Exception thrown when Lua encounters an error inside an error handler.

クラス概要

LuaSandboxErrorError
class LuaSandboxErrorError extends LuaSandboxFatalError {
/* 継承したプロパティ */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private Throwablenull $previous = null;
/* 継承したメソッド */
final public string Exception::getMessage()
final public Throwablenull Exception::getPrevious()
final public int Exception::getCode()
final public string Exception::getFile()
final public int Exception::getLine()
final public array Exception::getTrace()
final public string Exception::getTraceAsString()
public string Exception::__toString()
private void Exception::__clone()
}

The LuaSandboxFatalError class

はじめに

Uncatchable LuaSandbox exceptions.

These may not be caught inside Lua using pcall() or xpcall().

クラス概要

LuaSandboxFatalError
class LuaSandboxFatalError extends LuaSandboxError {
/* 継承したプロパティ */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private Throwablenull $previous = null;
/* 継承したメソッド */
final public string Exception::getMessage()
final public Throwablenull Exception::getPrevious()
final public int Exception::getCode()
final public string Exception::getFile()
final public int Exception::getLine()
final public array Exception::getTrace()
final public string Exception::getTraceAsString()
public string Exception::__toString()
private void Exception::__clone()
}

The LuaSandboxMemoryError class

はじめに

Exception thrown when Lua cannot allocate memory.

クラス概要

LuaSandboxMemoryError
class LuaSandboxMemoryError extends LuaSandboxFatalError {
/* 継承したプロパティ */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private Throwablenull $previous = null;
/* 継承したメソッド */
final public string Exception::getMessage()
final public Throwablenull Exception::getPrevious()
final public int Exception::getCode()
final public string Exception::getFile()
final public int Exception::getLine()
final public array Exception::getTrace()
final public string Exception::getTraceAsString()
public string Exception::__toString()
private void Exception::__clone()
}

参考

  • LuaSandbox::setMemoryLimit

The LuaSandboxRuntimeError class

はじめに

Catchable LuaSandbox runtime exceptions.

These may be caught inside Lua using pcall() or xpcall().

クラス概要

LuaSandboxRuntimeError
class LuaSandboxRuntimeError extends LuaSandboxError {
/* 継承したプロパティ */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private Throwablenull $previous = null;
/* 継承したメソッド */
final public string Exception::getMessage()
final public Throwablenull Exception::getPrevious()
final public int Exception::getCode()
final public string Exception::getFile()
final public int Exception::getLine()
final public array Exception::getTrace()
final public string Exception::getTraceAsString()
public string Exception::__toString()
private void Exception::__clone()
}

The LuaSandboxSyntaxError class

はじめに

Exception thrown when Lua code cannot be parsed.

クラス概要

LuaSandboxSyntaxError
class LuaSandboxSyntaxError extends LuaSandboxFatalError {
/* 継承したプロパティ */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private Throwablenull $previous = null;
/* 継承したメソッド */
final public string Exception::getMessage()
final public Throwablenull Exception::getPrevious()
final public int Exception::getCode()
final public string Exception::getFile()
final public int Exception::getLine()
final public array Exception::getTrace()
final public string Exception::getTraceAsString()
public string Exception::__toString()
private void Exception::__clone()
}

The LuaSandboxTimeoutError class

はじめに

Exception thrown when the configured CPU time limit is exceeded.

クラス概要

LuaSandboxTimeoutError
class LuaSandboxTimeoutError extends LuaSandboxFatalError {
/* 継承したプロパティ */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private Throwablenull $previous = null;
/* 継承したメソッド */
final public string Exception::getMessage()
final public Throwablenull Exception::getPrevious()
final public int Exception::getCode()
final public string Exception::getFile()
final public int Exception::getLine()
final public array Exception::getTrace()
final public string Exception::getTraceAsString()
public string Exception::__toString()
private void Exception::__clone()
}

参考

  • LuaSandbox::setCPULimit