大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

PHPではじめてDoxygenを使った。

著者:高木信尚
公開日:2018/06/26
最終更新日:2018/06/26
カテゴリー:技術情報
タグ:

高木です。おはようございます。

私は以前からDoxygenをよく使っています。
以前にも書いたと思いますが、クロバーフィールドの就業規則でさえDoxygenで書いているぐらいです。

そんな私でも、Doxygenを使って実際にドキュメント化したことがあるプログラミング言語は限られています。
C、C++、Javaあたりでしょうか?
C++/CLIやC#でさえDoxygenを使った経験がありません。

そんな状況なのですが、このたび初めてPHPでDoxygenを使いました。
何となく

関数のドキュメントには、f(int $arg)の部分は正しく表示されます。
しかし、末尾の : intが脱落してしまうのです。
PHPで戻り値の型指定ができるようになったのは最近のことなので、まだDoxygenが対応していないだけだと思います。

引数については @param に型を記述しなくてもかまわないでしょうが、@return には型も記述しておいたほうがよさそうです。
まあ、関数の定義をインラインで展開するようにすれば問題ないのかもしれませんが。

今回気付いたのはその2点ぐらいです。
今後はもっといろんなケースを実験していきたいと考えています。

今回は関数だけでコードを書いたため、クラスを一度も使っていません。
PHPのクラスを使った際にどうなるのか、Doxygenの癖をあらかじめ調べておく必要がありますね。
おそらくクラスやインタフェースについては、Javaのそれと変わらない気はしています。
トレイトなんかも是非調べておくべきですね。
名前空間なんかも本当に正しく処理されるのかやや不安があります。

欲をいえば、クラスのマジックメソッドとか、配列で定義したデータ構造なんかもドキュメント化してくれるとうれしいのですが、まあ無理というものです。
このあたりは自分でゴリゴリ書くしかなさそうです。
通信プロトコルで使うデータ・パケットの定義なんかも自分でゴリゴリ書いているので、それと同じようなものでしょう。

ほかには、PHPでC++を前処理するような場合、C++用のDoxygenの記述とPHP用のDoxygenの記述が混在する可能性が出てきます。
たとえば次のようなケースです。

これがどのように処理されるのか非常に興味があります。

今回はこのあたりにして、続きはまた別の機会に書きたいと思います。

    上に戻る