はじめに

この拡張は、Zend 拡張 API の深い知識が無くとも、あるいは第三の中間言語を学ぶことをせずとも、 純粋な PHP で共有ライブラリ (.DLL または .so) を読み込んだり、C の関数を呼び出したり、C のデータ構造にアクセスしたりすることを 可能とします。 公開 API は単一のクラス FFI として実装されています。 このクラスの static メソッド (そのうちのいくつかは非 static メソッドとしても呼び出せます) や オーバーロードされたオブジェクトメソッドが、実際の C のデータとのやり取りを行います。

警告

FFI は、システムと低レベルでやり取りできるため危険です。 FFI 拡張は、C 言語および使用する C API についての実用的な知識を持つ開発者のみが 用いるべきです。リスクを最小化するため、FFI API の使用は ffi.enable php.ini ディレクティブによって制限できます。

注意:

FFI 拡張は、古くからある PHP 拡張の API を廃止しようとしているわけではなく、 C の関数やデータ構造へのアドホックなインターフェースを提供するにすぎません。

ヒント

今のところ、FFI のデータ構造へのアクセスは、ネイティブな PHP の配列やオブジェクトへのアクセスと比べて 非常に (約 2 倍) 低速です。したがって、速度のために FFI 拡張を使うことには意味がありません。 しかし、メモリ消費を減らすために使うのは意味があるかもしれません。

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top