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 ~]#
おわりに
次の本家サイトが参考になりました。詳しかったので自信を持って進められました。また、以前の自分の投稿も参考になりました。勉強の記録は励みになりますし、実際役立ちますね♪
- Using PEAR — phpDocumentor
- ポイント3つ!phpDocumentor を Pleiades All in One 日本語ディストリビューションで使うための設定!!! | oki2a24
以上です。