DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录.
  • DmozDir.org
DMOZ目录快速登录入口-免费收录各类优秀网站的中文网站目录.由人工编辑,并提供网站分类目录检索及地区分类目录检索,是站长免费推广网站的有力平台!

使用Phing,在PHP构建工具

  • 使用Phing,在PHP构建工具

  • 已被浏览: 33 次2020年10月11日    来源:  DMOZ中文网站分类目录
  • Phing是PHP项目构建工具,它允许您自动执行一组用一个命令行动。

    Phing是一个基于Apache Ant的PHP项目的构建工具。构建系统可以帮助您执行一组用一个命令行动。如果你想知道为什么PHP需要一个构建工具,考虑你写你的本地机器上的代码和单元测试工作流程,如果测试通过上传代码分期/生产服务器,使生产数据库的任何变化。如果没有构建文件,你需要每一步手动去。如果你正在做持续集成,你会一遍又一遍做同样的步骤。这太容易在这个过程中意外省略的东西,在生产造成了严重的问题结束了。 Phing有助于通过自动化像运行单元测试,应用数据库的变化,部署应用程序代码等。在本文中,我将向你展示一些与Phing的基础知识的任务,克服这些问题。

    如果你没有它已经,您可以使用PEAR安装Phing:

    <预的tabindex = “0”> shameer @育:?$须藤梨信道发现pear.phing.info

    shameer @育:?$须藤梨安装phing / phing

    如果你想使用的任务,例如PHPUnit的或phpDocumentor的,那么你还需要安装相关程序包。

    Phing的Hello World

    为了显示你是多么容易创建构建文件Phing,让我们开始用“Hello World”的编译文件。首先创建您的项目目录,然后在它里面创建一个名为<代码>的build.xml 的,其内容如下:

    <预的tabindex = “0” 类=”语言的标记 “> <代码类=” 语言的标记 “> <?XML版本=” 1.0" 编码= “UTF-8”?>

    <项目名称= “HelloWorld” 的默认值= “欢迎” 的basedir = “”描述=“一个示范项目”>

    <属性名= “消息” 值=的 “Hello World!”/>

    <目标名称=“欢迎”>

    <回波MSG = “$ {消息}”/>

    在命令行上,导航到目录和运行<代码> phing

    <预的tabindex = “0”> shameer @育:?/的HelloWorld $ phing

    构建文件:/home/shameer/HelloWorld/build.xml

    的HelloWorld>欢迎:

    [回音]的Hello World!

    BUILD FINISHED

    总时间:0.2275秒

    <项目> 元素是构建文件的根元素。属性<代码>默认是必需的,指定默认目标如果在命令行上不被提供一个调用。除此之外,你还可以指定项目名称,项目的基本目录,并组织让事情的说明。

    <目标> 元素表示可被执行的任务的一个命名的基团。例如,不同的目标可能会被定义为执行备份或更新数据库。靶也可以取决于其必须在执行前被执行的另一目标。

    <回波> 元素是一个任务,可以执行单个动作。有很多Phing核心任务范围从像创建一个目录等进行XSLT转换更复杂的任务简单的任务数。你不局限于Phing提供,虽然任务;您还可以创建自定义任务。

    <属性> 名为其可随后在整个构建文件一起使用的值元素定义。引用一个属性的值,指定“<代码> $ {”和“<代码>} ”之间它的名字。保持头脑中的属性名称是区分在Phing敏感。

    这不是强制性的,你的名字你构建文件<代码>的build.xml 的,但Phing将寻找这名默认。如果使用其他名称,那么你就需要指定构建文件作为参数传递到 phing 的命令,例如:

    <预的tabindex = “0”> shameer @育:?/ HelloWorld的$ phing的hello.xml

    您也可以调用通过提供一个或命令行更多的目标名称不仅仅是默认的其他目标:

    <预的tabindex = “0”> shameer @育:?/ HelloWorld的$ phing的hello.xml Target1时

    多目标

    我们修改构建脚本,并添加额外的目标。例如起见,我假设以下目录结构是到位的项目:

    directory structure

    更新<代码>的build.xml 的所以现在看起来是这样的:

    <预的tabindex = “0” 类=”语言的标记 “> <代码类=” 语言的标记 “> <?XML版本=” 1.0" 编码= “UTF-8”?>

    <项目名称= “HelloWorld” 的默认值= “欢迎” 的basedir = “”描述=“一个示范项目”>

    <属性名= “消息” 值=的 “Hello World!”/>

    <属性名= “buildDir” 值= “构建”/>

    <属性名= “SRCDIR” 值= “SRC”/>

    <属性名= “ftp.host” 值= “ftp.example.com”/>

    <属性名= “ftp.port” 值= “21”/>

    <属性名= “ftp.username” 值= “用户”/>

    <属性名= “ftp.password” 值= “密码”/>

    <属性名= “ftp.dir” 值= “/的public_html /”/>

    <属性名= “ftp.mode” 值= “ASCII”/>

    <目标名称=“欢迎”>

    <回波MSG = “$ {消息}”/>

    <目标名称=“测试”>

    <文件集DIR = “./测试”>

    <包括名称= “* test.php的”/>

    <文件集ID = “srcfiles”>

    <包括名称= “*”/>

    <排除名称= “*。TMP”/>

    <目标名称=“构建”取决于=“测试”>

    <回波味精=“复制到构建目录...” />

    <拷贝todir = “$ {buildDir}”>

    <文件集REFID = “srcfiles”/>

    主机= “$ {} ftp.host”

    端口= “$ {} ftp.port”

    用户名= “$ {} ftp.username”

    密码= “$ {} ftp.password”

    DIR = “$ {} ftp.dir”

    模式= “$ {ftp.mode}”>

    <文件集REFID = “srcfiles”/>

    两个目标已被添加,测试和建造,以及默认的目标已更改为构建。现在,当您从项目目录运行Phing它会调用<代码>生成的目标,并且由于这个目标依赖于<代码>测试的目标,Phing将运行在测试目标第一。在 任务所调用PHPUnit的。因为如果任何单元测试失败构建过程不应该继续,其 haltonfailure属性已设置为真。 <代码> 获取要包括从任何数目的嵌套<代码> <文件集> 元素。中的文件

    单元测试成功运行后,在其<代码> <文件集> 到目的地目录指定的构建目标复制文件使用<代码> <复制> 。注意,代替这里给出的文件名一个<代码> REFID 被使用。此引用<代码> <文件集> 前面与该ID <代码> srcfiles 声明。这是有帮助的定义文件集,并像这样引用它,当你有复杂的正则表达式或需要引用相同的文件在几个地方。

    任务连接到使用FTP与给定证书并传送由所述文件组中指定的文件的远程服务器。

    概要

    在本文中,我向您介绍了PHP构建工具Phing。还有很多更多的Phing比我在这里讨论,例如,你可以使用数据库迁移用它来帮助。我建议你阅读Phing的出色的文档,看看所有的什么这个强大的工具可以做。

    <小>经由恐龙O /存在Shutterstock 图像


    以上信息来源于网络,如有侵权,请联系站长删除。

    TAG:php Phing 工具 构建

  • 上一篇:反映了2011年,计划2012
  • 与“使用Phing,在PHP构建工具”相关的资讯
  • nginx调用php
  • 运行JavaScript代码片段的19种工具
  • 自动化运维工具之Puppet常用资源(二)
  • Windows生产力工具推荐
  • 测试接口/抓包工具的使用