カテゴリー
コンピューター

VirtulaBox の LAMP 開発環境に phpDocumentor をインストール、そして試してみました♪

VirtualBox の仮想マシンに Linux をインストールして開発環境を構築してきました。

開発環境ならではのものとして、わすれていました。phpDocumentor です。きちんと開発しようと思いますとクラスコメントやフィールドのコメント、関数のコメントは非常に大事となってきます。

今回、phpDocumentor のインストールと実践を、記録に残しておきます。

インストール

手順は本家サイトのやり方とほぼ同じです。ほぼ、というのは、1箇所だけ変更しているからです。pear install に「–alldeps」オプションを付けて依存関係にあるものも一緒にインストールしています。

[root@localhost ~]# pear channel-discover pear.phpdoc.org
Adding Channel "pear.phpdoc.org" succeeded
Discovery of channel "pear.phpdoc.org" succeeded
[root@localhost ~]# pear install --alldeps phpdoc/phpDocumentor-alpha
downloading phpDocumentor-2.0.0a12.tgz ...
Starting to download phpDocumentor-2.0.0a12.tgz (1,338,503 bytes)
.........................done: 1,338,503 bytes
install ok: channel://pear.phpdoc.org/phpDocumentor-2.0.0a12
[root@localhost ~]#

インストールの確認

[root@localhost ~]# phpdoc --version
phpDocumentor version 2.0.0a12
[root@localhost ~]#

使用してみる準備

入力、つまりドキュメントの元のディレクトリを作ります。今回はフレームワークの CakePHP を導入します。

[root@localhost html]# wget https://github.com/cakephp/cakephp/archive/2.3.5.zip
[root@localhost html]# unzip -q 2.3.5

使用してみたものの不完全

出力ディレクトリは予め作成する必要はなく、存在していなくてもコマンドに指定しましたら自動的に作成されました。

作成されたのですが、不完全でした。GraphViz が入っていないため、図表が作成されませんでした。

[root@localhost html]#phpdoc -d /var/www/html/cakephp-2.3.5 -t /var/www/html/phpdoc
…略…
Parsing /var/www/html/cakephp-2.3.5/app/Controller/AppController.php
Storing structure.xml in "/var/www/html/phpdoc/structure.xml" .. OK
Initializing transformer .. OK
Processing behaviours .. OK
Executing transformations
  Unable to find the `dot` command of the GraphViz package. Is GraphViz correctly installed and present in your path?
  Unable to find the `dot` command of the GraphViz package. Is GraphViz correctly installed and present in your path?
You have new mail in /var/spool/mail/root
[root@localhost html]#

GraphViz をインストール

PHP のモジュールか何かと思ったのですが、そうではなくて GraphViz というパッケージそのものでした。。。

[root@localhost html]# yum install graphviz
…略…
Installed:
  graphviz.i386 0:2.22.0-4.el5.rf                                                             

Dependency Installed:
  alsa-lib.i386 0:1.0.17-1.el5                     audiofile.i386 1:0.2.6-5                    
  avahi.i386 0:0.6.16-10.el5_6                     avahi-glib.i386 0:0.6.16-10.el5_6          
  esound.i386 1:0.2.36-4                           ghostscript.i386 0:8.70-14.el5_8.1         
  ghostscript-fonts.noarch 0:5.50-13.1.1           gnome-keyring.i386 0:0.6.0-1.fc6           
  gnome-mime-data.i386 0:2.4.2-3.1                 gnome-mount.i386 0:0.5-3.el5               
  gnome-vfs2.i386 0:2.16.2-10.el5                  libart_lgpl.i386 0:2.3.17-4                 
  libbonobo.i386 0:2.16.0-1.1.el5_5.1              libbonoboui.i386 0:2.16.0-1.fc6            
  libcroco.i386 0:0.6.1-2.1                        libglade2.i386 0:2.6.0-2                    
  libgnome.i386 0:2.16.0-6.el5                     libgnomecanvas.i386 0:2.14.0-4.1           
  libgnomeui.i386 0:2.16.0-5.el5                   libgsf.i386 0:1.14.1-6.1                    
  librsvg2.i386 0:2.16.1-1.el5                     shared-mime-info.i386 0:0.19-5.el5         
  urw-fonts.noarch 0:2.3-6.1.1                   

Complete!

もう一度使用してみる

パッケージがないとの警告は出なくなり無事ドキュメントが作成されました。しかしながら、実際にウェブブラウザから確認してみると、図が描画されない、、、です。。。なぜ><。

[root@localhost html]# rm -rf /var/www/html/phpdoc/
[root@localhost html]# phpdoc -d /var/www/html/cakephp-2.3.5 -t /var/www/html/phpdoc
…略…
Parsing /var/www/html/cakephp-2.3.5/app/Controller/AppController.php
Storing structure.xml in "/var/www/html/phpdoc/structure.xml" .. OK
Initializing transformer .. OK
Processing behaviours .. OK
Executing transformations
[root@localhost html]#

ヘルプ

phpdoc コマンドはどのようなオプションがあるのか、見てみました。

[root@localhost ~]# phpdoc --help
Usage:
 project:run [-t|--target[="..."]] [-f|--filename[="..."]] [-d|--directory[="..."]] [--encoding[="..."]] [-e|--extensions[="..."]] [-i|--ignore[="..."]] [--ignore-tags[="..."]] [--hidden] [--ignore-symlinks] [-m|--markers[="..."]] [--title[="..."]] [--force] [--validate] [--visibility[="..."]] [--defaultpackagename[="..."]] [--sourcecode] [-p|--progressbar] [--template[="..."]] [--parseprivate] [-c|--config[="..."]]

Aliases: run
Options:
 --target (-t)         Path where to store the generated output
 --filename (-f)       Comma-separated list of files to parse. The wildcards ? and * are supported (multiple values allowed)
 --directory (-d)      Comma-separated list of directories to (recursively) parse (multiple values allowed)
 --encoding            encoding to be used to interpret source files with
 --extensions (-e)     Comma-separated list of extensions to parse, defaults to php, php3 and phtml (multiple values allowed)
 --ignore (-i)         Comma-separated list of file(s) and directories that will be ignored. Wildcards * and ? are supported (multiple values allowed)
 --ignore-tags         Comma-separated list of tags that will be ignored, defaults to none. package, subpackage and ignore may not be ignored. (multiple values allowed)
 --hidden              set to on to descend into hidden directories (directories starting with '.'), default is on
 --ignore-symlinks     Ignore symlinks to other files or directories, default is on
 --markers (-m)        Comma-separated list of markers/tags to filter (default: ["TODO","FIXME"]) (multiple values allowed)
 --title               Sets the title for this project; default is the phpDocumentor logo
 --force               Forces a full build of the documentation, does not increment existing documentation
 --validate            Validates every processed file using PHP Lint, costs a lot of performance
 --visibility          Specifies the parse visibility that should be displayed in the documentation (comma seperated e.g. "public,protected")
 --defaultpackagename  Name to use for the default package. (default: "Default")
 --sourcecode          Whether to include syntax highlighted source code
 --progressbar (-p)    Whether to show a progress bar; will automatically quiet logging to stdout
 --template            Name of the template to use (optional) (multiple values allowed)
 --parseprivate        Whether to parse DocBlocks marked with @internal tag
 --config (-c)         Location of a custom configuration file

Help:
 phpDocumentor creates documentation from PHP source files. The simplest way
 to use it is:

     $ phpdoc run -d [directory to parse] -t [output directory]

 This will parse every file ending with .php, .php3 and .phtml in <directory
 to parse> and then output a HTML site containing easily readable documentation
 in <output directory>.

 phpDocumentor will try to look for a phpdoc.dist.xml or phpdoc.xml file in your
 current working directory and use that to override the default settings if
 present. In the configuration file can you specify the same settings (and
 more) as the command line provides.

 Other commands
 In addition to this command phpDocumentor also supports additional commands:

 Available commands:
   help
   list
   parse
   run
   transform
 project
   project:parse
   project:run
   project:transform
 template
   template:generate
   template:list
   template:package

 You can get a more detailed listing of the commands using the list
 command and get help by prepending the word help to the command
 name.

[root@localhost ~]#

おわりに

次の本家サイトが参考になりました。詳しかったので自信を持って進められました。また、以前の自分の投稿も参考になりました。勉強の記録は励みになりますし、実際役立ちますね♪

以上です。

コメントを残す