Как заставить phing удалять все комментарии из php фалов?

Доброго времени суток, %username%!

Имеется phing крайней версии из официального репозитория, php 5.5.32, всё под windows.

Стоит задача - удалить все комментарии из php-файлов проекта и пустые переносы строк. Эдакая минификация для того, чтоб передав превью исходников системы заказчику удобочитаемость кода была несколько затруднена, но функционал системы при этом не пострадал.

Так как для сборки проекта используется phing, то логичнее всего было бы ему такую задачу и поставить, благо необходимый функционал у него имеется из коробки.

Но при попытке добавить в build.xml конструкцию вида:
<target name="protect_php">
    <echo>Protect PHP files</echo>
    <reflexive>
      <fileset dir="${build_dir}">
        <include name="**/*.php" />
      </fileset>
      <filterchain>
        <tabtospaces tablength="2" />
        <stripwhitespace />
        <stripphpcomments />
      </filterchain>
    </reflexive>
  </target>


Получаем вывод в консоли:
project > protect_php:

     [echo] Protect PHP files
[reflexive] Applying reflexive processing to 47 files.


В директории с проектом действительно 47 *.php файлов, но "обрабатываются" (удаляются комментарии и переносы строк) лишь у тех, что расположены в директории одним уровнем ниже корневой директории с проектом, т.е.
./%ЗДЕСЬ_НЕ_ОБРАБАТЫВАЮТСЯ%/%ЗДЕСЬ_ОБРАБАТЫВАЮТСЯ%/%ЗДЕСЬ_НЕ_ОБРАБАТЫВАЮТСЯ%
Чертовщина, т.к. **/*.php подразумевает под собой все *.php файлы любой вложенности.

Более того, при выполнении данного таргета остальные не обрабатываются - работа останавливается, причем никаких ошибок в консоли не отображается.

Комрады, подскажите пожалуйста - что я делаю не так, и как решить поставленную задачку?
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
paramtamtam
@paramtamtam Автор вопроса
Ответ: глючит функция <stripphpcomments />. Итоговый вид:
<target name="protect_php" depends="make_copy">
    <echo>Protect PHP files</echo>
    <reflexive>
      <fileset dir="${build_dir}">
        <include pattern="**/*.php" />
      </fileset>
      <filterchain>
        <stripwhitespace />
        <tabtospaces tablength="1" />
      </filterchain>
    </reflexive>
  </target>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы