Подтвердить что ты не робот

Инструменты создания/интеграции PHP: используете ли вы их?

После прочтения статьи "Современный PHP-рабочий процесс" в ноябрьском выпуске журнала php | architect magazine 2008 года, который ( phpUnit), инструменты сборки ( Phing) и непрерывное интегрирование ( Xinc), я вдохновил узнать больше о некоторых инструментах, доступных для PHP, особенно Phing.

В прошлом я часто обрабатывал развертывание на производственном сервере, запустив сайт в качестве рабочей копии подрывной работы и просто выполнив "обновление svn" в окне производства, чтобы развернуть последнюю версию кода.

Используете ли вы инструменты сборки для PHP-кода? Какие преимущества вы, по вашему мнению, предлагаете для развертывания прямо из подрывной деятельности? На что мне следует обратить внимание, или на какие бы препятствия я могу столкнуться?

4b9b3361

Ответ 1

Я использовал как Phing, так и Ant и предпочитаю последнее намного больше. Сначала я пошел с Phing из-за того, что он написан на PHP, но, честно говоря, он не настолько зрелый, как Ant. В конце концов, наличие зрелой сборной системы с большим сообществом стоит больше.

Вещи, сделанные с помощью Ant/Phing:

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

Ответ 2

Большая проблема, которую я вижу с Phing, заключается в том, что она создает ненужный слой косвенности. PHP - это язык сценариев, поэтому его можно запускать напрямую. Использование XML-конфигурации Phing плохо подходит для языка: оно обеспечивает более читаемую декларативную конфигурацию, но за счет принесения в жертву любой гибкости языка. С Ant (вдохновение для этого маршрута) это имеет смысл, поскольку Java не обладает такой гибкостью, поскольку она менее динамична и требует компиляции.

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

Поэтому я буду придерживаться вариантов, которые ближе к тому, что PHP может делать из культур, которые более активно поддерживают инструменты построения. Обычно я использую Gradle. Rake также отлично справляется в зависимости от того, на каком языке вы хотите обмануть (и могут быть другие аналогичные варианты). Вы также должны взвесить такие вещи, как поддержка Webdriver, если вы занимаетесь этим делом. В противном случае создание легкого решения с использованием PHP и/или BASH должно охватывать все, сохраняя при этом прозрачность

Ответ 3

Я смотрел на Финга, это выглядело потрясающе. Для проекта, над которым я работаю, я использую Apache Ant. Я использую его, чтобы сделать несколько вещей:

  • Объединить и сжать Javascript и CSS (сжатие выполняется с помощью YUI Compressor
  • Замените стандартные файлы конфигурации на файлы конфигурационных файлов (например, переименовать config.php.production в config.php)
  • Удалить ненужные файлы (например, файл сборки ant, build.xml)

Я думаю, что Phing стоит посмотреть на ant, потому что это родной PHP, который может быть приятным. Также, если вы делаете что-то большее, чем просто копировать/перемещать файлы, обратите внимание на проблемы с производительностью при переходе к рабочей среде. У меня была проблема, когда компрессор YUI работал нормально на моей локальной машине, но на относительно небольшом VPS он был очень медленным.

Ответ 4

В проекте, над которым я сейчас работаю, мы используем phpUnderControl для запуска тестов и получения быстрой обратной связи, когда что-то сломано. Мы планируем использовать его для запуска других тестов, таких как некоторые, написанные в Watir.