问题标签 [phing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
7198 浏览

php - Phing,调用命令将其输出放入属性中

我有一个脚本,可以查找和输出或将我当前的版本# 写入文本文件。现在唯一的问题是如何将此版本号放入 PHING 属性中。

现在我的 PHING 目标构建 build.zip 和 built.tar,我希望它构建 build-1.0.0.zip 或任何版本脚本决定的当前版本。我怎样才能做到这一点?我必须创建自己的“任务”吗?

0 投票
2 回答
1938 浏览

php - Phing 的三叶草覆盖率

有没有办法让 Phing 以三叶草格式输出它的覆盖率报告?

我知道 phpunit 有 --coverage-clover 但我不知道如何从 Phing 启用此选项。

我不想手动使用 <exec 命令——它违背了 Phing 的观点。

我正在使用 Phing 2.4RC2

谢谢。

0 投票
1 回答
1227 浏览

php - 你如何管理你的构建[使用 Phing] 过程?

我正在尝试使用 Phing 来自动化:

  • 运行测试
  • 在每台 Developer 机器上运行数据库迁移 [使用 dbdeply]
  • 在需要时部署到生产环境

我认为在我的项目中添加一个构建文件夹并将我所有的构建配置文件和数据库增量放在该文件夹中是有意义的。并将所有内容提交到 SVN 存储库中。所以每个开发人员在从 svn 签出时都会得到更新的构建文件。并能够运行构建以使用新更改更新他的数据库。

在生产服务器上:我计划在那里添加另一个构建文件以在 svn 中获取最新的 Tagged 版本并执行 CSS 和 JS 压缩。


我也计划使用 PHPUnderControl 实现持续集成,这样我就可以跟踪每个构建的结果,并在构建失败时得到通知。

那么,您认为这一切都有意义吗,还是您有其他更好的建议?

0 投票
3 回答
2697 浏览

php - 为什么 PHP 不创建这个 zip 文件(权限问题)

  • 我在窗户上

  • 我正在使用 PHING 压缩一些文件

  • 我有很多东西要拉上拉链

  • 压缩工作,除了那些在被压缩的文件中包含特定 phing 文件集的文件

  • 当我调试时,我可以在 phing 的 ZIP 任务中看到 ZipArchive::close 返回 false。错误字符串显示为“权限被拒绝”。在手册中,它指出 close() 是实际写入文件的内容。

  • 这不是时间耦合,换句话说,无论这个是第一个、最后一个还是其他什么,它都会发生。所有其他的工作。这个好像没有什么不同。

这是我的构建文件:http ://pastebin.org/84786 (一个月有效)

问题出在第 251 行。它之前和之后的 zip 任务都可以正常工作。在调试器中,我可以看到大约 150 个文件被添加到 zip 中。我已经在调试器中验证了所有路径都是正确的。

该构建似乎在 linux 上运行良好。

当我右键单击 zip 文件所在的文件夹时,只读复选框“蓝出”,未选中或未选中。无论我是选中还是取消选中它,然后按确定并返回文件夹的属性,复选框再次为“蓝色”。显然这是设计使然(http://support.microsoft.com/kb/326549),这似乎不是问题,因为它只发生在那个文件中。

另一个奇怪的事情是,如果我转到第 252 行并将文件集更改为指向,例如,它正上方的“importer”模块中的文件,它会创建 zip。但是,第 236 行的 .tar.gz 证明每次都可以正常工作。所以它只发生在为 zip 任务设置的特定文件中。该文件集适用于 tar 任务。事实上,它下面的“包”注释下的所有任务也引用了这些文件,但不会创建 tar.gz 文件。

是什么赋予了?

另外:新的观察......如果我足够快地刷新文件视图,我可以看到 myzipfile.zip.tmp 正在构建,但 myzipfile.zip 永远不会被创建。

在 linux 上,我只是仔细检查了一切是否正常工作。去搞清楚。

0 投票
9 回答
41665 浏览

php - 为 PHP 项目设置部署/构建/CI 周期

我大部分时间都是一个孤独的开发人员,从事许多大型的、主要是基于 PHP 的项目。我想专业化和自动化处理代码库更改的方式,并创建一个持续集成流程,使过渡到团队工作成为可能,而无需进行根本性更改。

我现在正在做的是,我为每个项目都有一个本地测试环境;我对每个项目都使用 SVN;更改在本地进行测试,然后通常通过 FTP 传输到在线版本。API 文档是从源代码手动生成的;单元测试是我慢慢接触的东西,它还不是我日常生活的一部分。

我设想的“构建周期”将执行以下操作:

  • 在本地测试后,变更集会被签入 SVN。

  • 我开始构建过程。SVN HEAD 修订被检出,如有必要进行修改,并准备好上传。

  • API 文档会自动生成 - 如果我还没有详细设置它,使用默认模板扫描整个代码库。

  • 新版本通过 FTP 部署到远程位置(包括一些目录重命名、chmodding、导入数据库等。)这是我已经非常喜欢phing的东西,但我当然愿意接受替代方案。

  • 运行驻留在预定义位置的单元测试。我使用电子邮件、RSS 或(最好是)我可以抓取并放入网页的 HTML 输出来了解他们的失败或成功。

  • (可选)预定义位置中的最终用户“changelog”文本文件使用提交消息的预定义部分进行更新(“现在可以同时过滤“foo”和“bar” time). 该消息不一定与 SVN 提交消息相同,后者可能包含更多的内部信息。

  • 像代码度量、代码风格检查等东西现在不是我的主要关注点,但从长远来看,它们肯定会。开箱即用的解决方案非常受欢迎。

我在寻找

  • 来自或曾经处于类似情况并已成功实施解决方案的人的反馈和经验

  • 特别是关于如何设置它的良好的分步教程和演练

  • 提供尽可能多的自动化的解决方案,例如通过为每个新项目创建骨架 API、测试用例等。

并且

  • 产品推荐。到目前为止,我所知道的是用于构建的phing /ant,以及用于报告部分的phpUnderControlHudson 。就我所见,我都喜欢它们,但我当然没有详细的经验。

忙于工作,所以我强烈倾向于简单的解决方案。另一方面,如果缺少某个功能,我会因为它太有限而哭泣。:) 也欢迎点击式解决方案。我也推荐可以与 PHP 项目一起使用的商业产品。

我的设置

我在本地(确切地说是 7 个)上工作,大多数客户端项目都在 LAMP 堆栈上运行,通常在共享主机上(= 没有远程 SSH)。我正在寻找可以在自己的环境中运行的解决方案。我准备为此设置一个Linux VM,没问题。只有当托管解决方案提供了所描述的所有方面,或者足够灵活以与流程的其他部分进行交互时,托管解决方案才会对我感兴趣。

赏金 我正在接受我认为会给我最多里程的答案。这里有很多优秀的输入,我希望我能接受多个答案。感谢大家!

0 投票
6 回答
1188 浏览

php - 我使用 phing 语言环境还是远程?

我有一个与 phing 相关的问题。我是在本地开发机器上使用它来部署应用程序还是通过生产机器上的 ssh 调用它?我不确定在哪里执行 Eran Galperin 的步骤(您首选的 PHP 部署策略是什么)。我是部署脚本的初学者。所以请原谅:)

马可

0 投票
2 回答
2744 浏览

php - phing 与 phpunit 代码覆盖率结果

我为 phing 创建了一个 build.xml 文件来创建代码覆盖率报告。它用

并指向与 phpunit --coverage-html 相同的文件。然而,结果不同。使用 phing,我对所有文件都有 100% 的代码覆盖率,而我没有。关于使用 phing 运行代码覆盖率,我可能不知道一些事情可以解释这一点 100%。我做错了什么以获得不同的结果?

0 投票
1 回答
288 浏览

filter - **在Phing中是什么意思?

Phing 用户指南使用 ** 文件过滤器的以下描述:

“两个星号 (**) 可能包含在目录分隔符的“边框”上方。”

我很难理解这到底是什么意思。有人可以把这个翻译成英文吗?

0 投票
1 回答
2572 浏览

php - Phing 在 OSX / MAMP 上不起作用

这是我迄今为止尝试过的:

安装运行。我可以运行以下命令:

如果我运行命令

未列出 Phing。

您现在可以运行以下命令:

谢谢你的帮助。

0 投票
6 回答
3270 浏览

php - 让 Phing 的 dbdeploy 任务在 delta 错误时自动回滚

我正在使用Phingdbdeploy 任务管理我的数据库架构。只要我的增量文件的查询没有错误,这工作正常。

但是,如果出现错误,dbdeploy 将只运行增量文件直到出现错误的查询,然后中止。这让我有些沮丧,因为我必须手动回滚更改日志表中的条目。如果我不这样做,dbdeploy 将在后续尝试中假定迁移成功,因此任何重试都不会执行任何操作。

所以问题是,有没有办法让 dbdeploy 使用事务,或者你能建议任何其他方式在发生错误时自动回滚 phing吗?

注意:我对 Phing 不是很精通,所以如果这涉及编写自定义任务,任何示例代码或包含更多信息的 url 都将受到高度赞赏。谢谢