Pleiades All in One 日本語ディストリビューションで phpDocumentor を使うためのポイント3つ。
- コマンドプロンプトを管理者特権で実行します(Windows7)。
- phpDocumentor を一度アンインストールしてから再度インストールします。
- php.ini の読み込むライブラリ(Dynamic Extensions)に php_xsl.dll を追加します。
苦労しましたが、phpDocumentor インストール完了までの流れ。
事前準備として、パスを通しました。
set path=%path%;C:\pleiades\xampp\php path
インストールする前に、そもそも pear がインストールされているのか、phpDocumentor がインストールされているのかを確認しました。
pear list
下記のように インストールされている pear パッケージの一覧が出たことから、pear がインストールされていることが確認できました。また、リストの中に phpDocumentor がありましたのでインストールされているということになります。
INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET: ========================================= … PhpDocumentor 1.4.2 stable …
第1の問題!
しかし、下記のコマンドで phpDocumentor のヘルプを実行しようとしても、できない、といわれてしまいました。
phpdoc -h 'phpdoc' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
そこで、pear のアップグレード、phpDocumentor を一旦アンインストールし再びインストールを試みます。
pear upgrade PEAR ・・・ PEAR_Config::writeConfigFile fopen('C:\windows\pear.ini','w') failed (fopen(C:\windows\pear.ini): fa iled to open stream: Permission denied)
第2の問題!
しかし、権限がないと怒られました。
この解決には、次の Microsoct のヘルプページが役に立ちました。
- コマンド プロンプト : よく寄せられる質問 の「管理者特権でコマンドを実行するにはどうすればいいですか。」
この通りにやってみたのですが、検索結果に出てきませんでした。そこで、スタート > すべてのプログラム > アクセサリ > コマンドプロンプト、で右クリックし、「管理者として実行」することで立ち上げることができました。
この状態で再度試みると、無事、アップグレードできました!
pear upgrade PEAR C:\windows\system32>pear upgrade PEAR WARNING: channel "pear.php.net" has updated its protocols, use "channel-update p ear.php.net" to update pear/Console_Getopt requires PEAR Installer (version >= 1.8.0), installed versio n is 1.7.2 downloading PEAR-1.9.4.tgz ... Starting to download PEAR-1.9.4.tgz (296,332 bytes) .............................................................done: 296,332 bytes downloading Archive_Tar-1.3.10.tgz ... Starting to download Archive_Tar-1.3.10.tgz (18,294 bytes) ...done: 18,294 bytes downloading Structures_Graph-1.0.4.tgz ... Starting to download Structures_Graph-1.0.4.tgz (30,318 bytes) ...done: 30,318 bytes upgrade ok: channel://pear.php.net/Archive_Tar-1.3.10 upgrade ok: channel://pear.php.net/Structures_Graph-1.0.4 upgrade ok: channel://pear.php.net/PEAR-1.9.4 PEAR: Optional feature webinstaller available (PEAR's web-based installer) PEAR: Optional feature gtkinstaller available (PEAR's PHP-GTK-based installer) PEAR: Optional feature gtk2installer available (PEAR's PHP-GTK2-based installer) PEAR: To install optional features use "pear install pear/PEAR#featurename"
補足ですが、このアップグレードによってどうやら C:\php\pear が作成され、そこに pear の不足フォルダ、ファイルが作成されるようです。
ですので、pleiades を削除するときは、このフォルダも忘れずに、ですね。
次のコマンドで、phpDocumentor をアンインストールします。
C:\windows\system32>pear uninstall PhpDocumentor uninstall ok: channel://pear.php.net/PhpDocumentor-1.4.2
続いて、インストールしました。phpDocumentor 公式サイトのやり方に従い、チャンネルの追加、その後インストール、という手順です。
C:\windows\system32>pear channel-discover pear.phpdoc.org Channel "pear.phpdoc.org" is already initialized C:\windows\system32>pear install phpdoc/phpDocumentor-alpha Did not download optional dependencies: pear/PEAR_PackageFileManager2, use --all deps to download automatically phpdoc/phpDocumentor can optionally use package "pear/PEAR_PackageFileManager2" (version >= 1.0.2) downloading phpDocumentor-2.0.0a8.tgz ... Starting to download phpDocumentor-2.0.0a8.tgz (5,091,297 bytes) ................................................................................ ................................................................................ ................................................................................ ......done: 5,091,297 bytes install ok: channel://pear.phpdoc.org/phpDocumentor-2.0.0a8
インストールできたか確認しました。
C:\windows\system32>phpdoc -h Usage: project:run [-t|--target[="..."]] [-f|--filename[="..."]] [-d|--directory[="... "]] [-e|--extensions[="..."]] [-i|--ignore[="..."]] [--ignore-tags[="..."]] [--h idden] [--ignore-symlinks] [-m|--markers[="..."]] [--title[="..."]] [--force] [- -validate] [--visibility[="..."]] [--defaultpackagename[="..."]] [--sourcecode] [-p|--progressbar] [--template[="..."]] [--parseprivate] [-c|--config[="..."]] …
OKですね!
第3の問題!
最後に、実際に phpdoc を作成してみました。が、ダメでした。。。
C:\windows\system32>phpdoc -f C:\pleiades\xampp\htdocs\cakephp-2.2.0\lib\Cake\Co ntroller\Controller.php -t C:\tmp\phpdocumentor Initializing parser and collecting files .. OK Parsing files Parsing C:\pleiades\xampp\htdocs\cakephp-2.2.0\lib\Cake\Controller\Controller.ph p Parameter could not be found in setAction() Parameter could not be found in validateErrors() Storing structure.xml in "C:\tmp\phpdocumentor\structure.xml" .. OK Initializing transformer .. OK Processing behaviours .. OK Executing transformations [phpDocumentor\Plugin\Core\Exception] The XSL writer was unable to find your XSLTProcessor; please check if you have installed the PHP XSL extension
どうやら、PHP XSL extension がないよ!ということのようです。まずは Pleiades All in One 日本語ディストリビューションでの php エクステンションの置き場所を調べました。
C:\pleiades\xampp\php\php.ini で、extension_dir を検索しました。どうやら、C:\pleiades\xampp\php\ext にエクステンションを格納しているようです。
そのフォルダを覗いてみると、ありました!php_xsl.dll です!これが php.ini に書かれていないはずです。はい、書かれていませんでした。そこで、ほかのエクステンション同様、 Dynamic Extensions のところに、extension=php_xsl.dll を追加しました。
これで OK なはずです。
C:\windows\system32>phpdoc -f C:\pleiades\xampp\htdocs\cakephp-2.2.0\lib\Cake\Co ntroller\Controller.php -t C:\tmp\phpdocumentor Initializing parser and collecting files .. OK Parsing files Parsing C:\pleiades\xampp\htdocs\cakephp-2.2.0\lib\Cake\Controller\Controller.ph p Storing structure.xml in "C:\tmp\phpdocumentor\structure.xml" .. OK Initializing transformer .. OK Processing behaviours .. OK Executing transformations Unable to find the `dot` command of the GraphViz package. Is GraphViz correctl y installed and present in your path? Unable to find the `dot` command of the GraphViz package. Is GraphViz correctl y installed and present in your path?
やりました!ついに Pleiades All in One 日本語ディストリビューションで phpDocumentor を動かすことができました!
おわりに
まだ、できてないことがあるよ!GraphViz だよ!と言われていますが、今回はやめておきます。
また、上で試した phpdoc 作成は、単一のファイルでしたが、次のコマンドで、フォルダを指定して phpdoc を作成できます。
set path=%path%;C:\pleiades\xampp\php phpdoc -d C:\pleiades\xampp\htdocs\cakephp-2.2.0\lib\Cake -t C:\tmp\phpdocumentor
また別の機会にきちんと調べたいと思っていますが、どうなるかわからないのでメモっておきます。
以上です!!!!!!!!