问题标签 [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 投票
1 回答
119 浏览

svn - 在 Subversion 中保留 PHP 类(Zend、PEAR)?

我在同一个 Subversion 存储库中有两个项目。他们都使用一些标准代码/类(Zend/PEAR/phpMyAdmin 等)来处理各种事情。回购的组织方式如下:

  • \shared\trunk- 两个项目都使用的东西
  • \main\project1\trunk\sharedsvn:外部的\shared\trunk
  • \main\project2\trunk\sharedsvn:外部的\shared\trunk

这很有效,因为我只需要在一个位置更新公共代码。我也确信它可以在本地、演示和生产环境中工作。

但是,我注意到 TortoiseSVN 似乎总是花一些时间检查所有三个目录。现在我有一些标签和分支,它甚至更慢。classes 文件夹包含大约 3500 个文件和 1500 个文件夹。

该怎么办?保持标准类版本受控是一种好习惯吗?

可能的替代方案:删除外部,而是让 Phing 处理导出类文件夹?

0 投票
1 回答
687 浏览

php - 是否可以使用 phing ftpdeploy 删除远程文件和目录?

是否可以通过 Phingftpdeploy扩展删除远程目录?

我想在复制文件之前清理目标存储。

如果这是不可能的,ftpdeploy还有其他 Phing 扩展可以实现这一点吗?

能够将文件从 ftp 复制回本地主机也很有用。理想情况下,拥有Ant ftp 任务端口可能会很好。

0 投票
2 回答
1150 浏览

php - svn checkout 不能通过 phing 工作

我目前正在尝试编写一个内部应用程序,以便能够通过单击将我们的项目部署到验收和生产服务器。我们正在使用 phing 来完成此操作。

目前我很难签出(或进行 svn 导出)该项目。我使用以下命令:

在普通命令行上,这可以完美运行,但是由于主机使用 https,我会收到提示接受证书。问题是似乎没有自动接受证书的参数。

--trust-server-cert 也无济于事,因为证书由于主机名不匹配而被拒绝,其中参数仅绕过“CA 未知”错误。

关于如何签出(或导出、更新……)项目的任何想法?

0 投票
3 回答
306 浏览

php - 部署时一次性运行脚本

我们目前使用 Phing 进行部署,并使用 dbdeploy 应用任何数据库更改。但是,有时我们希望在部署期间进行一些更改,这些更改可以更好地由我们的对象模型处理,因此我们编写了一次使用 PHP 脚本,在部署后手动运行。

是否有任何类似于 dbdeploy 的现有解决方案可以处理正在运行的脚本,更重要的是,跟踪哪些已经运行,以便每个脚本只运行一次?

0 投票
3 回答
524 浏览

php - 2 台云服务器,1 台开发,1 台产品;什么是好的部署过程?

目前为我的网络应用程序使用 LAMP 堆栈。我的 dev 和 prod 在同一个云实例中。现在我得到一个新实例,并希望将开发/测试环境移动到新实例,将其与生产环境分开。

它曾经是一个简单的 Phing 脚本,可以将 SVN 导出到 prod 目录(由我的 vhost.conf 指向)。现在如何在环境分离的情况下进行良好的构建过程?

考虑将 SVN 存储库转移到开发服务器,然后进行 ssh+svn 推送(这可以通过 Phing 实现吗?)

这种设置的最佳/常见做法是什么?

更多信息:

我目前将CodeIgniter用于 MVC 框架,将Phing用于 localhost 部署的自动构建。一些用Java编写的 CRON 脚本也支持 Web 应用程序。

更新:

最终使用 Phing + Jenkins。到目前为止工作良好!

0 投票
4 回答
1048 浏览

php - 如何使用 Zend_Config_Writer_Ini 保留 application.ini 路径

我目前正在 Phing 中开发一个构建系统,该系统采用 Zend Framework 项目模板并根据 Phing 参数对其进行配置。我遇到的一个问题是在使用 Zend_Config_Writer_Ini 时。

我的 Phing 任务从 repo 中获取一个名为 application.default.ini 的预填充文件,并使用 Zend_Config_Ini 对其进行修改,以从构建文件中添加参数(数据库详细信息等)。然后将其写入 application.ini 以供项目使用。相关任务代码的简化版本如下所示:

就数据库凭据而言,这可以正常工作,但是当涉及到包含已定义常量的预填充路径时,就会出现问题。例如:

变成:

有没有办法在读取/写入不同的 ini 文件时保留这些配置行,或者我应该在运行任务之前重组我的构建文件以复制文件并且只修改我需要更改的 ini 行?

0 投票
2 回答
4119 浏览

php - 如何在 Phing 中对目标进行分组?

有没有办法在 Phing 中对目标进行分组?我有许多可以通过以不同的顺序和组合运行它们来重用的目标。例如创建一个新的开发版本:

或者从 repo 更新开发版本:

有没有办法将这些目标分组以将它们作为单个命令运行?我知道您可以链接目标,例如:

但理想情况下,我想运行一个命令,例如:

这将运行所有四个目标。这样,构建文件可以分离成可重用的目标。创建执行此操作的新目标将导致现有目标的代码重复。我知道您可以使用depends 参数来执行其他目标,但我希望每个目标彼此独立。

Phing 文档似乎对如何执行此操作不是很清楚,但我确信可以在其他目标中调用目标,因为它必须是一种非常常见的做事方式。非常感谢。

0 投票
2 回答
257 浏览

php - Phing UpToDateTask with mapper?

Can someone give me an example of how to use Phing's UpToDateTask with a mapper? I can't figure it out and I can't find any examples on the net.

Here's what I am trying to achieve. I have a bunch of SCSS files that I convert to CSS using the ExecTask and Ruby's SASS parser. But, I only want to regenerate the CSS files if any of the source files have changed.

The source SCSS files are in app/assets/css and the compiled files are placed in app/webroot/css. How can I use the UpToDateTask to test if any of the files in app/assets/css are newer than any of the files in app/webroot/css?

Note that the SASS comilation does not have a 1-to-1 filename mapping to CSS files. There could be a dozen SCSS files that in the end get compiled into 3-4 CSS files. I know I could simply hard-code those CSS files into my build.xml but I would like to create a more generic, re-usable build target.

Thanks in advance!

0 投票
2 回答
2453 浏览

return-value - 使用 phing/phingcall 内部调用目标时的返回值

我正在通过 phingcall 命令调用目标。我想从被调用目标传回一个状态变量,或者至少从调用目标更改现有值。目标:如果子目标失败,我想在我的主目标控制逻辑中分支,我用一个属性表示。下面的代码不起作用。知道如何使它发挥作用或实现我的目标的替代方法吗?

谢谢,于尔根

这里的问题是

回声

0 投票
1 回答
561 浏览

php - 如何存储 zend、phing 和 phpunit 的共享配置?

我有一个用 Zend Framework 编写的 PHP 应用程序。它使用 Phing 作为构建系统,使用 PHPUnit 进行单元测试。所有这些部分都有配置设置。Zend 使用application.xml,Phing 使用build.xml和可选的一些build.properties,以及 PHPUnit 使用phpunit.xml

但是,我在哪里存储所有三个组件所需的信息?想想数据库配置(例如密码)。

就我而言,它application.xml有不同的部分(开发、登台、生产),都具有不同的数据库配置。我最近在我的应用程序中集成了一个 ORM,现在我想对我的模型进行单元测试。所以我有 PHPUnit 使用的第四个数据库(单元测试)。

PHPUnit 可以处理夹具数据,但不能处理数据库模式。所以,我想我会编写一个 Phing 构建目标,将数据库模式从生产或登台复制到 unittest 数据库。这样我就有了额外的好处,我什至可以对我的数据库迁移脚本进行单元测试。但为了做到这一点,Phing 需要同时访问多个数据库。

我的第一个直觉是把所有四个数据库的所有配置都放进去build.properties,让 Phing 简单地生成application.xmlphpunit.xml. 但是,让构建系统生成配置文件感觉很脏。

这里最好的解决方案是什么?还是我应该简单地复制配置细节而不用太担心?

想法

我可以简单地复制它们。这只是一些设置,它们不应该经常更改。但我敢打赌,当它们发生变化时,我会忘记重复(因为它很少发生)。共享参数包括:

  • 数据库配置(开发、登台、生产和单元测试)
  • 包括路径。我们使用一些不支持自动加载器的旧库。到目前为止,我们已经通过智能自动前置文件部分解决了这个问题。
  • 一些网络服务 API 凭证