问题标签 [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 回答
8871 浏览

php - 如何正确部署您的 PHP 应用程序?

如何正确地将应用程序从开发部署到生产以及如何处理多个站点配置。我所有的开发都是通过位于 var/svn/myapp/trunk 的 svn 完成的,实际的生产代码在 /var/www/myapp 中。

我将本地机器的最新代码检出到名为“myapp_latest_svn”的目录中。我的主要 settings.php 中有特定于站点和位置的代码,它具有 H_PATH = ' http://myapp.com ' & db_host、db_user_name 和 db_password 的 db 配置设置,这在本地机器设置中有所不同(其中 localhost /myapp.com 只是一个 Apache 别名)& 在生产(在 myapp.com 上运行的实时站点)服务器上。

.htaccess 文件也不同于生产服务器上的文件。简而言之,开发和生产之间存在许多差异。

我将所有工作都保存在 SVN 中。每天早上我都会使用 SVN Update,它将最新的代码更新到我的本地 svn 存储库。当我准备好上线时,我使用 svn Commit 构建了一个版本。

然后在发布中,我必须记住将所有适当的开发文件更改为它们的生产对应文件。现在我必须手动编辑生产 settings.php 和 .htaccess 以反映站点特定的更改。

我正在寻找一种从开发到生产的自动化方式,完成版本控制,无需手动编辑文件,这容易出错和不好的做法。

一种方法是使文件的生产版本为只读 (0444)。这样,当我进行 svn 导出时,它们不会被文件的开发版本覆盖,而且我不必担心每次从开发到生产的过程中编辑文件。但这是做持续集成之类的糟糕方法。

还可以制作多个 settings.php 副本(一个用于 localhost、beta 和 prod)。然后使用从 svn 导出的 shell 脚本,一旦导出完成,它会根据我们部署到的位置将 settings.php 替换为正确的 settings.php。这样,一切都是自动化的。但这也是一种蹩脚的方式。

最后一种方法是

就 settings.php 而言,这很好。但是.htaccess 是什么,你不能像上面那样在.htaccess 中检查。

每次我部署我的站点时我都不想做的事情是我必须更改设置。

我的数据库架构不在版本控制中,所以数据库对我来说不是问题,只有 settings.php 和 .htaccess。

另外,我如何告诉 svn 不要更新某些目录,因为这也是特定于站点的(/log、/cache、/assets、/downloads)。我还需要为上述文件保留完整的 apache(www_data)写访问权限。

最后,我不想在导出时将空的主干目录和 .svn 文件复制到生产服务器。

从 svn 构建到生产服务器时,如何使用 Phing 甚至 shell 脚本进行集成而不会导致任何这些问题。

这对于许多在野外想成为应用程序开发人员的人来说可能很有用。

提前致谢,

工作时间

0 投票
1 回答
308 浏览

php - 如何在没有 include_path 的虚拟主机上生成推进 ORM 对象?

我有一个开发服务器,上面有几个虚拟主机。每个人都需要能够运行以下命令: propel-gen ./ creole 该脚本执行一些对数据库进行逆向工程的 php ......但是需要包含它执行的 php 才能这样做。

php.ini 中没有设置 include_path,因为它对所有虚拟主机都是全局的。我需要 include_path 对于每个虚拟主机都是唯一的。

我怎样才能在命令行上进行这项工作?(注意:htaccess 不起作用,因为命令行不通过 apache)。

有没有其他方法可以解决这个问题?也许传递命令行参数来设置包含路径?也许在.bashrc 中设置一些东西?:(

PS - 该脚本在我的 Mac 上运行良好,它有一个硬编码的包含路径

0 投票
1 回答
449 浏览

package - Phing 的 deb 包任务

有人知道为 Debian 基础 linux 系统创建 .deb 包的 Phing 任务吗?

0 投票
2 回答
2595 浏览

php - Phing 中的数组属性

我有一个 phing 构建文件,它使用 <touch> 任务检查某些文件的权限。

它调用一个外部文件(filesToCheck.txt),它只是不同文件位置的列表。这工作正常。但是当我想基于来自同一个外部文件(filesToCheck.txt)的某个键访问特定文件时,它会阻止我在我的 PHP 代码中重用相同的列表。

我查看了 Phing 的文档,但没有找到任何数组任务。有谁知道解决方法或创建新任务是在 Phing 中处理数组属性的唯一解决方案?

0 投票
2 回答
878 浏览

php - phing 和 phpUnderControl ... 一起工作

有没有人让这些无缝地一起工作?我已经尝试过,使用http://phing.info/trac/wiki/Users/Documentation/CruiseControl上的插件取得了一些成功,但未能:

  • 使指标图正常工作(不显示)
  • 启用“PMD” - 项目混乱检测 - 报告

除了我的 phing 构建脚本之外,是否还有其他必须(可以)运行的特定于 ant 的命令?

此外,报告部分的首页转储了一堆日志信息,我也试图摆脱它。

为任何帮助干杯……我们正在运行 phing 2.3.0 和 phpUnderControl 0.4.7。

保罗

0 投票
5 回答
1431 浏览

php - phing : 通过电子邮件发送完整的日志?

我在项目中使用phing进行一些自动构建过程,并且想知道:如何通过电子邮件获取完整的日志?


当我phing通过命令行启动时,会显示构建日志;我会喜欢的 :

  • 通过电子邮件发送,
  • 给几个收件人,
  • 构建是成功还是失败
  • 理想情况下:带有邮件主题,告诉您构建是成功还是失败
  • 理想情况下:某种 HTML 邮件,带有格式、颜色……会很好

我虽然将输出管道phing传递给mail命令,但我想要一个适用于 Linux 和 Windows 的解决方案,并且不需要安装任何额外的软件......

有人有想法吗?


作为旁注:我考虑过添加某种“报告”目标,在构建结束时启动,但是:

  • 只有在所有先前的目标都没有失败时才会启动它
  • 我看不到如何获得完整的登录信息
0 投票
2 回答
1935 浏览

mysql - `<` 执行任务中的字符正在破坏我的 Phing 构建脚本

我正在尝试在 Phing 中设置一个 mysql 导入脚本,但“<”会导致 XML 错误。有任何想法吗?

我正在考虑让 dbDeploy 这样做,但如果有一种简单的方法可以做到这一点,那就太好了(单行命令与 dbDeploy 的多行设置)

0 投票
1 回答
572 浏览

php - 无法在 XP 上的 Phing 中执行 zip 任务

我正在使用 Phing 创建构建文件,但我注意到它似乎无法执行 zip 任务:

前两个任务按预期执行,但最后一个没有。那里有任何 Phing 大师可以帮我解决这个问题吗?

0 投票
2 回答
692 浏览

php - 在 windows 和 linux 上运行单元测试

有没有一种方法可以在 linux 和 windows 上有效地运行单元测试( phpunit )?

我需要这样做,因为系统的某些部分仅在 linux 下可用,但我确实希望能够在我的 IDE 中运行测试套件的某些部分,顺便说一下netbeans

我遇到的问题大部分时间都与路径有关。为了使事情更复杂,我还打算从phing内部运行测试。

但我还没有解决的是为不同平台定制不同测试套件的能力。这甚至可能吗?

测试基本上位于 test 目录中,而源代码位于 src 中。包含路径由包含文件处理。是否可以使用自动加载器来处理不同的目录结构?

0 投票
2 回答
2541 浏览

scope - 通过调用目标未在调用目标中设置属性

在以下 phing xml 中,在“skel”目标内,我检查应用程序是否已配置,如果未配置,则调用配置目标,然后将配置应用于多个文件。

问题是db.host在 phingcall 之后没有设置属性,即使它是在属性提示之后设置的。

我错过了什么?