C のコードやデータへの主要インターフェースはじめにこのクラスのオブジェクトは、ファクトリーメソッドである FFI::cdef や FFI::load、 FFI::scope によって作成されます。 定義された C の変数は FFI インスタンスのプロパティとして利用可能となり、 定義された C の関数は FFI インスタンスのメソッドとして利用可能となります。 宣言された C の型は、 FFI::new や FFI::type を使って 新しい C のデータ構造を作成するのに使用できます。
FFI 定義のパースや共有ライブラリの読み込みには長い時間がかかることがあります。
Web 環境において、各 HTTP リクエストでこれを行うのは不便です。
しかし、FFI 定義やライブラリを PHP の起動時に事前ロードし、FFI オブジェクトを必要なときにインスタンス化することが可能です。
ヘッダーファイルは特殊な define である 複数の C のヘッダーファイルを同一のスコープへと事前ロードできます。 クラス概要
final
FFI
/* 定数 */
public
const
int
FFI::__BIGGEST_ALIGNMENT__;
/* メソッド */
public static FFI\CData addr(FFI\CData
&$ptr)public static int alignof(FFI\CDataFFI\CType
&$ptr)public static FFI\CType arrayType(FFI\CType
$type, array $dimensions)public FFI\CDatanull cast(FFI\CTypestring
$type, FFI\CDataintfloatboolnull &$ptr)public static FFI cdef(string
$code = "", stringnull $lib = null)public static void free(FFI\CData
&$ptr)public static bool isNull(FFI\CData
&$ptr)public static FFInull load(string
$filename)public static int memcmp(stringFFI\CData
&$ptr1, stringFFI\CData &$ptr2, int $size)public static void memcpy(FFI\CData
&$to, FFI\CDatastring &$from, int $size)public static void memset(FFI\CData
&$ptr, int $value, int $size)public FFI\CDatanull new(FFI\CTypestring
$type, bool $owned = true, bool $persistent = false)public static FFI scope(string
$name)public static int sizeof(FFI\CDataFFI\CType
&$ptr)public static string string(FFI\CData
&$ptr, intnull $size = null)public FFI\CTypenull type(string
$type)public static FFI\CType typeof(FFI\CData
&$ptr)定義済み定数
|