Хм ... Я бы определил "создание" как нечто вроде "подготовки, упаковки и развертывания всех артефактов программной системы". Компиляция в машинный код - это только один из многих этапов сборки. Другие могут проверять последнюю версию кода из scm-системы, получать внешние зависимости, задавать значения конфигурации в зависимости от цели, к которой развернуто программное обеспечение, и запускать какой-то набор тестов, чтобы убедиться, что вы работаете / работаете build "перед тем, как вы на самом деле развернетесь.
«Построение» программного обеспечения может / должно быть выполнено для любого программного обеспечения, независимо от языка программирования. Интегрированные языки имеют «недостаток», заключающийся в том, что синтаксические или структурные (например, вызов метода с неправильными параметрами и т. Д.) Ошибки обычно обнаруживаются только во время выполнения (если у вас нет отдельного шага в сборке, который проверяет такие ошибки, например: с PHPLint ).
Таким образом (автоматизированные) тестовые случаи (например, Unit-Tests - см. PHPUnit или SimpleTest - и Frontend-Tests - см. Selenium ) являются наиболее важными для больших проектов PHP, чтобы обеспечить хорошее здоровье кода.
Существует также отличный Build-Tool (например, Ant для Java или Rake для Ruby) для PHP: Phing
CI-системы, такие как Xinc или Hudson , просто используются для автоматической (как всякий раз, когда изменение проверяется в scm) упаковки вашего кода, проверки его на наличие явных ошибок, запуска ваших тестов (вкратце: запустите сборку) и сообщите о результатах вашей команде разработчиков.