phing获取目录中的文件并为xml文件创建它们的列表?

时间:2012-02-05 10:28:30

标签: phing

我很想创建一个通用的phing脚本来构建一个joomla插件。

每个joomla插件都必须包含joomla系统用来安装插件的.xml文件。在这个xml文件中,我们需要定义我们的zip存档包含的文件和文件夹:

<files>
   <folder>folder1</folder>
   <filename plugin="nameofplugin">nameofplugin.php</filename>
   <filename>index.html</filename>
</files>

现在,因为我很懒,而且我不想总是自己做这件事,我想让phing脚本为我做这件事。

我将所有插件文件移动到特定文件夹,如下所示:

-pluginFolder

- folder1中

- nameofplugin.php

- 的index.php

我知道我可以像这样使用foreach:

<foreach param="dirname" absparam="absname" target="subtask">
        <fileset dir="${destination.dir}">
            <type type="file" />
            <depth max="0" min="0" />
        </fileset>
    </foreach>

<target name="subtask">
    <echo msg="<file>: ${dirname}" />
</target>

现在在子任务中,我无法弄清楚如何将所有文件合并到单个变量中,以便我可以使用replacetokens作为示例?

有关于此的任何想法?我应该建立自己的phing课吗?或者是否有一种简单的方法可以实现这一目标,即开箱即用?

1 个答案:

答案 0 :(得分:3)

好的,我设法实现了我想要的。我创建了一个新的phing任务并在那里进行了替换。

你可以在这个joomla插件的基础上看到它是如何工作的: https://github.com/compojoom/CUpdater

build.xml文件位于:

https://github.com/compojoom/CUpdater/blob/master/builds/plugin.xml

,任务就在这里:

https://github.com/compojoom/CUpdater/blob/master/builds/phingext/listjpackagefilestask.php