PHP 拡張モジュールには、共通に含まれるファイルがいくつかあります。 その多くは拡張モジュールの種類に関わらずほぼ同じ内容ですが、 毎回それをコピーするのは面倒です。 幸いなことに、そのような初期作業を代わりに行ってくれるスクリプトがあります。 それが ext_skel で、 PHP 4.0 以降に同梱されています。
PHP 5.2.2 で、何もパラメータを指定せずに ext_skel を実行した結果は、次のようになります。
php-5.2.2/ext$ ./ext_skel ./ext_skel --extname=module [--proto=file] [--stubs=file] [--xml[=file]] [--skel=dir] [--full-xml] [--no-help] --extname=module module is the name of your extension --proto=file file contains prototypes of functions to create --stubs=file generate only function stubs in file --xml generate xml documentation to be added to phpdoc-cvs --skel=dir path to the skeleton directory --full-xml generate xml documentation for a self-contained extension (not yet implemented) --no-help don't try to be nice and create comments in the code and helper functions to test if the module compiled
残ったオプションは --extname です。 これは、作成する拡張モジュールの名前を ext_skel に伝えるためのものです。ここで指定する名前は、すべて小文字からなるものです。 使用できる文字は英字とアンダースコアのみで、PHP の ext/ フォルダ配下で一意なものでなければなりません。
--proto オプションは、 作成したい PHP 関数の情報を含むヘッダファイルを指定するためのものです。 既存のライブラリを使用する拡張モジュールの開発時に使用できるということらしいですが、 最近のヘッダファイルではうまく機能しないことが多いようです。 試しに zlib.h を指定してみたところ、 ext_skel の出力に 空っぽで何の意味もないプロトタイプが大量に含まれてしまいました。 --xml と --full-xml は、まったく機能しません。--skel を使用すると、独自の雛形ファイル群を使用することができます。 このオプションは、このセクションでは対象外とします。