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
と
--no-help
のみです。
拡張モジュールの構成に慣れるまでは、
--no-help
を指定しないようにしましょう。
そうすることで、ext_skel
が生成するファイルに有用なコメントがたくさん含められるようになります。
残ったオプションは --extname
です。
これは、作成する拡張モジュールの名前を ext_skel
に伝えるためのものです。ここで指定する名前は、すべて小文字からなるものです。
使用できる文字は英字とアンダースコアのみで、PHP の
ext/ フォルダ配下で一意なものでなければなりません。
--proto
オプションは、
作成したい PHP 関数の情報を含むヘッダファイルを指定するためのものです。
既存のライブラリを使用する拡張モジュールの開発時に使用できるということらしいですが、
最近のヘッダファイルではうまく機能しないことが多いようです。
試しに zlib.h を指定してみたところ、
ext_skel の出力に
空っぽで何の意味もないプロトタイプが大量に含まれてしまいました。
--xml
と --full-xml
は、まったく機能しません。--skel
を使用すると、独自の雛形ファイル群を使用することができます。
このオプションは、このセクションでは対象外とします。