Intereting Posts

Вы используете Phing?

Кто-нибудь использует Phing для развертывания приложений PHP, и если да, то как вы его используете? В настоящее время мы имеем рукописный скрипт «setup», который мы запускаем всякий раз, когда мы развертываем новый экземпляр нашего проекта. Мы просто проверяем SVN и запускаем его. Он устанавливает некоторые основные параметры конфигурации, устанавливает или перезагружает базу данных и генерирует v-хост для экземпляра сайта.

Я часто думал, что, возможно, мы должны использовать Phing . Я не использовал муравей, поэтому у меня нет реального представления о том, что Phing должен делать, кроме сценария, копирование файлов из одного места в другое, как это делает наш скрипт установки. Какие еще более продвинутые способы использования вы можете привести примеры, чтобы помочь мне понять, почему мы хотели бы или не хотели бы интегрировать Phing в наш процесс.

Из блога Federico Cargnelutti:

Особенности включают в себя преобразования файлов (например, замена токенов, преобразование XSLT, преобразования шаблонов Smarty), операции с файловой системой, поддержка интерактивной сборки, выполнение SQL, операции CVS, инструменты для создания пакетов PEAR и многое другое.

Конечно, вы можете написать собственные скрипты для всего вышеперечисленного. Однако использование специализированного инструмента сборки, такого как Phing, дает вам ряд преимуществ. Вы будете использовать проверенную структуру, вместо того, чтобы беспокоиться о настройке «инфраструктуры», вы можете сосредоточиться на коде, который вам нужно написать. Использование Phing также упростит, когда новые члены присоединятся к вашей команде, они смогут понять, что происходит, если раньше они использовали Phing (или Ant, на котором основывается Phing).

Я перешел из Ant в Phing, потому что «это PHP. Я использую его для экспорта из разных репозиториев subversion, копируют материал, создают разные установочные пакеты и т. Д. Все это с 20-строчным многократно используемым XML-файлом и конфигурационным файлом с конкретным проектом. Ни в коем случае я не мог так быстро сделать это с помощью специального скрипта. Я также планирую интегрировать сборку документации api и модульные тесты. Любить это!

Убедительным ответом для меня является то, что phing понимает PHP classpaths. Муравей нет. Я не хочу, чтобы ant build.xml был полным команд exec. Я, оказывается, в первую очередь программист на Java и по-прежнему использую phing. Это лучший инструмент для работы.

Я не вижу никаких веских оснований идти с фингом. Я имею в виду, должны ли PHP-программисты переписать Eclipse «просто потому, что« возможно, было бы проще написать плагины Eclipse в PHP? Я так не думаю.

У Ant есть лучшая документация, в том числе несколько хороших книг o'reilly, и она хорошо зарекомендовала себя в Java-вселенной, поэтому вы избегаете проблем (1) «мы еще не скопировали функцию X в phing» и (2) риск из проекта финга, который будет мертвым. Вот статья по настройке PHPUnit для работы с ant и cruisecontrol: не так сложно. И вы получаете интеграцию eclipse бесплатно.

Удачи!

Мы используем phing для развертывания SemanticScuttle :

  • генерировать zip-архив для распространения
  • создать пакет PEAR
  • загрузить zip в SourceForge
  • обновить канал PEAR с новым файлом пакета
  • рендерить reStructuredText документацию в html-файлы и загрузить их. В настоящее время с exec но я нахожусь для написания отдельной задачи .

Загрузка zip-файла и канала осуществляется через rsync, к сожалению, не поддерживается phing через специальную задачу, но использование exec всегда возможно и прекрасно работает.

В конце концов, это экономит много времени, и мы можем тестировать, упаковывать и развертывать наше приложение с помощью одной команды (что дает нам еще одно очко в тесте Joel ). Я бы не хотел жить без него.

См. Код build.xml .