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

ポイント3つ!phpDocumentor を Pleiades All in One 日本語ディストリビューションで使うための設定!!!

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

また別の機会にきちんと調べたいと思っていますが、どうなるかわからないのでメモっておきます。

以上です!!!!!!!!

コメントを残す