バージョン依存の挙動

PHP5.2.4上でPHPDocumentor1.4.0a2を動かしたところ、apidoc生成に伴ってmkdirされるディレクトリ名がおかしくて正常出力されない現象が起きた。
具体的には、

  1. PHPDocumentorは、apidoc出力ディレクトリに"media"というcss格納用のディレクトリをmkdirする。
  2. しかし、mkdirされたディレクトリは"edia"になっている。
    • PHPDocumentorのPHPソースには"media"とハードコードされている
  3. PHPDocumentorは自身のtemplateディレクトリ"edia"からcssを、1でmkdirした"edia"にコピーしようとする。
  4. しかし、実際にはtemplateディレクトリ"edia"ではなく"media"なので、PHPがfile not foundのwarningを吐く。
  5. cssはコピーされないままなので、結果、スタイルシートが効いていない間抜けなapidocが出力される。

この現象は、PHP5.2.3にバージョンダウンすることで解決した。

  • 環境
    • WindowsXP
    • Apache2.2.4
    • PHP5.2.3(通常時は5.2.4)
    • PHPDocumentor1.4.0a1

*PHPDocumentor1.4.0a2→PHPDocumentor1.4.0a1→PHPDocumentor1.4.0a2 と修正