phpDocumentorを試してみた

投稿日:

GWですね。こんにちは。
妻と3才の息子が妻の姉家族とイチゴ狩りに行っています。GWですね。
※自分は4ヶ月の長女とお留守番

最近、phpDocumentorを触ってみました。
いまさら感がもの凄いのですが、上手く活用したら
めちゃくちゃ便利やろこれって話を書きますです。

インストール

ちなみにCentOSです。
※バージョンは 6.2

$ cat /etc/redhat-release
CentOS release 6.2 (Final)

以下を参考にインストールしました。
madroom project: phpDocumentor 2のインストール手順(Mac/Win/Linux)

※GraphVizをCentOSにインストール

GraphVizを入れると、phpDocumentorでクラスの相関図も
出力されていい感じなので入れます。

$ sudo yum install -y graphviz graphviz-gd

※GraphVizを入れていないと、上のphpDocumentor 2のインストール手順にもありますが、phpdoc実行時にこんなメッセージがでると思います。

Unable to find the `dot` command of the GraphViz package. Is GraphViz correctly installed and present in your path?

使い方

インストールが終わったら使い方は簡単。

$ phpdoc -d [入力ディレクトリ] -t [出力ディレクトリ]

でOK。

例)
/home/www/configure/〜 を、/home/www/docroot/docsに出力したい場合

$ phpdoc -d /home/www/configure -t /home/www/docroot/docs

※phpdocから省きたいディレクトリがある場合

$ phpdoc -d [入力ディレクトリ] -t [出力ディレクトリ] -i [省くディレクトリ]

例)
/home/www/configure/〜 を、/home/www/docroot/docsに出力したいけど、
/home/www/configure/Hoge/ は省いて出力したい場合

$ phpdoc -d /home/www/configure -t /home/www/docroot/docs -i /home/www/configure/Hoge/

注意点

phpDocumentorを使ってみて、出くわしたメッセージと解決方法を以下に。
※解決方法は以下を参考にさせて頂きました。
<a href="http://www.hazymoon.jp/php/phpDocumentor/" target="_blank">phpDocumentorでドキュメントの自動生成</a>

No page-level DocBlock was found in file XXXX

簡単に言うと、そのファイルの説明が無いおって意味です。
1ファイル1クラスとかそういうルールでやっていると、
ものすごーくめんどくさい。

例)怒られる

<?php

/**
 * Hogeクラスだよん
 */
class Hoge
{
}

例)怒られない

<?php

/**
 * Hogeクラスについて書いています
 */

/**
 * Hogeクラスだよん
 */
class Hoge
{
}

例が大雑把すぎるけど、こういう事。
ものすごくめんどくさいけど。
ファイルの説明もちゃんと書きましょうって事です。
PHPって自由に書けるからね〜。
まぁ、しょうがないっすね〜。
ものすごくめんどくさいけど。

No DocBlock was found for \Hoge

クラスコメント無いお!

No DocBlock was found for method hoge()

メソッドコメント無いお!

No short description for method piyo()

ちゃんとメソッドコメント書けお!

例)怒られる

<?php

/**
 * @test
 */
public function hoge()
{
}

例)怒られない

<?php

/**
 * hogehogeするぞ
 * @test
 */
public function hoge()
{
}

これは自分がUnitTestのコードを出して見た時、出くわしました。

Argument $XXX is missing from the Docblock of hoge()

ちょww引数(@param)書いてないお!

例)怒られる

<?php

/**
 * hogehogeする
 */
public function hoge($in)
{
}

Parameter could not be found in hoge()

ちょww引数無いのに@param書いてるお!

例)怒られる

<?php

/**
 * hogehogeする
 * @param string
 */
public function hoge()
{
}

ん〜、他にも色々あると思うけどこのくらいで。
こちらを見ればバッチリだと思うので参考にしてください。

サンプル

最後に自分で軽く試してみたサンプルを。
色々試しに書き込んでいるので、何か参考にして頂ければと。
※subpackageとかバックスラッシュ()で区切るといい感じみたい。

http://shimabox.net/sample/phpDocumentor/docs/

こちらを見てみると分かる様に、Class inheritance diagram のリンクでクラス相関図が表示されるのでこれは便利かなぁと。
プロジェクトで出すのもいいけど、小さいクラス群とかね。きっと、よかですよね〜。

それと、やっぱりソースをきちんと管理出来たらかっこいいっ!
という事でphpDocumentorオススメです。

あと、一応サンプルのソースを。

作成者: shimabox

Web系のプログラマをやっています。 なるべく楽しく生きていきたい。

1件のコメント

  1. ピンバック: phpdocument – skillup

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください