Категория: cистемы сборки и автоматизация. Можно ли думать что Phing это PHP аналог GruntJS(GulpJS)?

Тимлид сказал ознакомиться с системой сборки Phing, уточнив что будем использовать для деплоя и на автотестах. До этого доводилось писать Gruntfile и Gulpfile, а теперь пишу build.xml:
<project name="test" basedir="." default="server">
    <target name="archive" depends="">
        <echo>Архивируем проект</echo>
        <zip destfile="phing.zip">
         <fileset dir=".">
            <patternset>
                <include name="**/**"/>
                <exclude name="vendor/**"/>
                <exclude name="tests/**"/>
                <exclude name="composer.*"/>
                <exclude name="adminer-*"/>
                <exclude name="codeception.*"/>
                <exclude name="build.xml"/>
            </patternset>
         </fileset>
        </zip>
    </target>
    <property name="uname" value="" override="false"/>
    <property name="pwd" value="" override="false"/>
    <property name="host" value="" override="false"/>
    <property name="todir" value="" override="false"/>
    <target name="build" depends="archive">
        <echo>Отправляем на сервер</echo>
        <scp username="${uname}" password="${pwd}" host="${host}" 
        fetch="false" file="phing.zip" todir="${todir}"/>
        <echo>Удаляем архив с локали</echo>
        <delete file="phing.zip" />
        <echo>Подготавливаем директорию на сервере</echo>
        <ssh username="${uname}" password="${pwd}" host="${host}"
        command="rm -rf ${todir}/www"/>
        <echo>Разархивируем на сервере</echo>
        <ssh username="${uname}" password="${pwd}" host="${host}"
        command="unzip -o -q ${todir}/phing.zip -d ${todir}/www"/>
        <ssh username="${uname}" password="${pwd}" host="${host}"
        command="chmod -R 777 ${todir}/www/templates/{cache,compiled}"/>
    </target>
</project>

На ваш взгляд, приемлимо ли писать build.xml в таком же ключе как Gruntfile или Gulpfile? То есть по другому,- Можно ли думать что Phing это PHP аналог GruntJS(GulpJS)? Есть ответ?

Ведь если это так(Phing есть налог), то Phing должен уметь принимать значения из командной сторки в свои задачи. Например, хочу чтоб Phing запускал мне девелопмент -сервер на локалхосте с портом 8080, я бы мог написать задачу в build.xml:
<target name="server">
    <exec command="php -S localhost:8080 -t ."/>
  </target>

Но есть одно но, если я запущу, а 8080 порт будет занят, Phing мне не скажет об этом. Далее уже думать о методе предовращения подобных ситуаций. Одним из таких методов будет являться указания домена и порта при запуске, -что то типа этого:
$ php vendor/bin/phing server
$ Укажите домен и порт на котором вы хотите запустить сервер: [localhost:8080]


Хочу спросить: способен ли Phing быть под стать таким системам сборки GruntJS и GulpJS?
  • Вопрос задан
  • 3519 просмотров
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Phing/Grunt/Gulp и т.д. это все аналог Make. Вы можете вместо phing make файлы писать, будет примерно то же самое, просто с phing возможно чуть удобнее. Вообще лучше не проецировать на phing ваш опыт общения с grunt. Оно как бы одно и тоже но чуть чуть отличается. Тут больше подходит параллель с ant.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы