phing получить файлы в каталоге и создать их список для файла XML? - PullRequest
1 голос
/ 05 февраля 2012

Я хочу создать общий phing-скрипт, который будет создавать плагин для Joomla.

Каждый плагин joomla должен иметь файл .xml, который используется системой joomla для установки плагина.В этом 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, который делает это?Или есть простой способ добиться этого с помощью того, что Phing предлагает из коробки?

1 Ответ

3 голосов
/ 10 февраля 2012

Хорошо, мне удалось добиться того, чего я хотел. Я создал новое задание 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

...