我想运行一个为我的 php 项目构建文档的脚本。它基本上只是使用 wget 来运行 phpdoc。
4 回答
这是关于SVN 钩子的相当广泛的教程
(回答我自己的问题,我只是认为其他人也想知道)。是的,而且 TortoiseSVN 也支持它。您正在寻找的词是“钩子”。
对于 TortoiseSVN,打开设置和“Hook Scripts”。单击“添加...”并选择 post_commit_hook(用于在提交完成后运行)。然后添加您正在运行的任何脚本和脚本的工作路径。
我使用了一个批处理文件并称为 wget(有一个 Windows 版本移植,谷歌它)。要让 wget 将来自 phpdoc 的日志存储在一个特定路径中,您必须指定完整路径,否则日志将存储在您提交的当前文件夹中,因此我的批处理文件如下所示:
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以获得完整的构建脚本工具。您可以在一处管理提交、文档和其他与构建相关的活动。