标签: phing

Phing和PHPUnderControl有什么区别?

我们目前使用手动设置和配置脚本以及手动连续集成脚本来构建和部署我们的应用程序.我正在考虑使用专为这些目的而设计的第三方系统来正式化这一点.

我之前看过Phing,我知道它基本上就像Ant.但是,我的Ant体验有点受限,所以对我没有多大帮助.(我所做的大部分Java工作都是作为jar文件部署的).

之前我已经研究过Cruise Control,我知道phpUnderControl是CC的一个插件.但是,Phing说它也适用于CC.所以我不清楚这里的重叠.我是否需要使用Phing和phpUnderControl来使用CruiseControl,还是它们是相互排斥的?

我需要的是能够:

  • 查看SVN的来源
  • 从SQL文件安装数据库
  • 从一系列模板和ini文件生成一些本地配置文件
  • 运行我们所有的单元测试(目前是ST,但很容易转换为PHPUnit)并在任何测试中断时向开发团队发送电子邮件(当然有堆栈跟踪)
  • 为应用程序生成API文档并将其放在某处
  • 运行测试覆盖率报告

现在,我们以这种或那种形式提供所有这些.但是,将它全部自动化并在一个过程中捆绑在一起会很不错.

php phing continuous-integration phpunit cruisecontrol

9
推荐指数
1
解决办法
2402
查看次数

使用phing复制整个目录

有没有人知道是否可以使用phing将文件和子文件夹(joomla核心下载)的整个文件夹复制到另一个文件夹,但没有.svn文件夹.

我已经使用SVN下载了joomla,我想使用phing将其导出到我的joomla dev文件夹,而无需列出每个文件类型.我的计划是使用它来保持我的开发人员从主干更新.

我知道如何排除

但无论如何都无法找到包含所有内容而不列出每个文件,或者试图猜测每种文件类型,以防我错过了什么!

建议保罗

svn phing

8
推荐指数
1
解决办法
4559
查看次数

phing和phpUnderControl ...一起工作

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

  • 使指标图表正常工作(不显示任何内容)
  • 启用"PMD" - 项目混乱检测 - 报告

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

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

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

保罗

php phing phpundercontrol

8
推荐指数
1
解决办法
874
查看次数

2个云服务器,一个开发,一个产品; 什么是良好的部署过程?

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

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

考虑将SVN存储库转移到开发服务器,然后执行ssh + svn推送(这可能是Phing吗?)

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

更多信息:

我目前正在使用CodeIgniter用于MVC框架,Phing用于本地主机部署的自动构建.一些用Java编写的CRON脚本也支持Web应用程序.

更新:

结束使用Phing + Jenkins.到目前为止运作良好!

php apache phing deployment build-process

8
推荐指数
1
解决办法
508
查看次数

如何存储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.但是,这感觉吧,肮脏的有一个生成系统生成的配置文件.

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

思考

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

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

php phing configuration phpunit zend-framework

8
推荐指数
1
解决办法
553
查看次数

在Phing(和Ant)构建脚本中选择属性

我在构建脚本中使用数据库.所有数据库详细信息都在我的属性文件中,但我想知道如何让用户轻松选择要使用的详细信息集?我正在和Phing一起工作,但因为它与Ant非常相似,所以我也会接受Ant的答案.

这是我的样本build.properties:

# Connection details for the dev database
db.dev.hostname=localhost
db.dev.database=foo
db.dev.username=foo_user
db.dev.password=foo_password

# Connection details for the staging database
db.staging.hostname=some.remote.server
db.staging.database=bar
db.staging.username=bar_user
db.staging.password=bar_password
Run Code Online (Sandbox Code Playgroud)

我想为用户提供一个简单的构建标志来选择要使用的数据库.假设我有一个构建任务来检查数据库模式.我想提供一个这样的构建标志:

phing -Ddatabase=staging check-schema
Run Code Online (Sandbox Code Playgroud)

这应该使用db.staging.*属性来获取数据库连接详细信息.我怎么能做到这样的事情?

php ant phing properties build

8
推荐指数
1
解决办法
993
查看次数

检查是否已在phing中设置属性

如何检查属性${foo}是否已设置?

奖金问题:如何逃避 $登录,<echo>这样我就可以输出${foo}字符串(而不是foo变量替换)?

PS:试图谷歌和阅读文档,但找不到答案.可能我错过了一些东西

phing

8
推荐指数
1
解决办法
4505
查看次数

为什么Phing/Ant超过Bash和Make?

我一直在工作中使用Phing(它是在我到达那里时设置的),并且考虑将它用于某些个人项目.有一点我还没有理解,但最大的吸引力是什么?

什么,如果有的话,是Phing或Ant的杀手特征?人们选择使用它们而不是(例如)只是执行构建操作的bash脚本集合的主要原因是什么?我敢肯定我错过了显而易见的事情,希望有人可以帮助我.虽然我知道有些人可能不喜欢使用phing /蚂蚁,我希望从人谁听到喜欢他们关于为什么他们喜欢他们.这样我就可以做出更明智的决定.

感谢您的任何指示或链接.

ant phing bash makefile

8
推荐指数
1
解决办法
1310
查看次数

包含多个phar文件时出现Php5-FPM错误

我们在服务器上使用Ubuntu + nginx + php5-fpm组合,PHP版本为5.5.我们正在尝试运行index.php,其中包含一堆phar文件.就像是:

<?php
include "a.phar";
include "b.phar";
//...
?>
Run Code Online (Sandbox Code Playgroud)

当从命令行PHP运行此脚本时,它工作正常.当从php开发服务器(php -S)或从nginx运行时,我们收到以下错误:

2013/11/18 17:56:06 [error] 14384#0: *597 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Cannot redeclare class Extract_Phar in b.phar on line 103
Run Code Online (Sandbox Code Playgroud)

我没有一个名为Extract_Phar的类 - 所以我假设我的构建过程正在将它添加到某个地方.我使用phing来构建相同的,以防万一.目标是:

<target name="phar" depends="prepare">
  <pharpackage destfile="./build/phar/LogUtils.phar" 
  basedir="./build/intophar"
  compression="bzip2">
  <fileset dir="./build/intophar/">
    <include name="*.*" />
    <include name="**/**" />
  </fileset>
  <metadata>
    <element name="version" value="1.0" />
    <element name="authors">
       <element name="Shreeni">
         <element name="e-mail" value="test@test.com" />
       </element>
    </element>
  </metadata>
  </pharpackage>
</target>
Run Code Online (Sandbox Code Playgroud)

而我的intophar文件夹中的index.php是这样的:

include("api/LogUtils.inc.php");
// Other relative include …
Run Code Online (Sandbox Code Playgroud)

php phing nginx phar

8
推荐指数
1
解决办法
627
查看次数

Phing exec命令设置环境变量

我正在尝试使用phing在构建脚本中设置环境变量.这通常是完成命令行,如下所示:

export MY_VAR=value
Run Code Online (Sandbox Code Playgroud)

在Phing我做了以下但是它不起作用.

<exec command="export MY_VAR=value" />
Run Code Online (Sandbox Code Playgroud)

phing command-line exec environment-variables

7
推荐指数
2
解决办法
6859
查看次数