おぎろぐはてブロ

なんだかんだエンジニアになって10年以上

CodeGen_PECLでエラー

CodeGen_PECL-1.0.3で、

$ pecl-gen --extname=test

Fatal error: Call to undefined method CodeGen_PECL_Extension::writeRreadme() 
in /usr/share/php/CodeGen/PECL/Command.php on line 257

とエラー。ぱっと見で分かるようにメソッド名がtypo
該当行の余分な "r" を消すだけでおk

-  $this->extension->writeRreadme("./$extname");
+  $this->extension->writeReadme("./$extname");

ちなみにパッケージはリリースされていないもののcvsでは修正済み。とりあえずここだけ直せばエラーは出なくなるけど、その他が大丈夫なのかは不明。

CodeGen_PECLとは

CodeGen_PECLは、PHP Extensionのスケルトンを生成するツール。
使い方は、id:shimooka さんのエントリが分かりやすい。

PHP4ではext_skelというスクリプトで生成していたのが、PHP5ではこれに置き換わっていく。ext_skelでは出来なかったこともいろいろ可能になっている。PHP5用だけれども、生成するコードについてはPHP5で大きく変わったOOまわり以外はPHP4でも動作するようになっている。
CodeGen_PECLでは、XMLを書いて、それを読ませてコード生成するというのが普通なのだけれど、ext_skel互換のI/Fも持っていて、それが、上のような使い方。extnameにExtension名と、protoにプロトタイプファイルのありかを指定する。