PHPプロジェクトのドキュメントを作成するスクリプトを実行したいと思います。基本的にはwgetを使用してphpdocを実行しています。
4 に答える
これはSVNフックに関するかなり広範なチュートリアルです
(私自身の質問に答えて、他の人も知りたいと思っただけです)。はい、TortoiseSVN もサポートしています。あなたが探している言葉は「フック」です。
TortoiseSVN の場合は、設定と「フック スクリプト」を開きます。「追加...」をクリックし、post_commit_hook を選択します (コミットが完了した後に実行するため)。次に、実行しているスクリプトとスクリプトの作業パスを追加します。
私はバッチファイルを使用してwgetを呼び出しました(移植されたWindowsバージョンがあり、Googleで検索します)。wget で phpdoc からのログを 1 つの特定のパスに保存するには、フル パスを指定する必要があります。そうしないと、ログはコミットした現在のフォルダーに保存されるため、バッチ ファイルは次のようになります。
SET BUILDLOG=%~dp0%build_log.html
rem %~dp0 returns the full working path *of this script*
SET PHPDOCURL=http://localhost/PHPDocumentor/docbuilder
SET PHPDOCCONFIG=yourconfigfile
wget -O %BUILDLOG% "%PHPDOCURL%/builder.php?setting_useconfig=%PHPDOCCONFIG%&setting_output=HTML%3ASmarty%3Adefault&ConverterSetting=HTML%3ASmarty%3Adefault&setting_title=Generated+Documentation&setting_defaultpackagename=default&setting_defaultcategoryname=default&interface=web&dataform=true"
これで、コミットするたびにバッチ スクリプトが呼び出されます。もちろん、php をコマンド ライン ツールとして使用することもできますが、私は phpdoc でそれを調べていません。
SVNフックを使用する代わりに、継続的インテグレーションエンジンを使用することもできます。個人的には、ハドソンのファンです。CruiseControlはクラシックですが、他にもたくさんあります。
なぜ継続的インテグレーションエンジンを使用するのですか?一般に、SVNフックを使用するよりも強力で機能が豊富でポータブルです(Mercurial、Gitなどの使用に切り替えたい場合はどうなりますか?)。
完全なビルド スクリプト ツールについては、Phingをチェックしてみてください。コミット、ドキュメント、その他のビルド関連のアクティビティを 1 か所で管理できます。