Я разработал скрипт развертывания phing и использовал его обоими способами, которые вы описали. Пока библиотека phing и зависимости установлены локально или на удаленной машине, вы можете делать это обоими способами, и на самом деле вы можете запускать ее из любой среды.
Позвольте мне подробно остановиться на моем опыте, но помните, что каждый человек живет в микрокосме потребностей и требований своих собственных проектов / студий, поэтому вполне возможно, что то, что работает для меня, может не работать для других людей.
Я думаю, что развертывание обычно настолько важно для бизнеса, что каждый раз оно должно происходить точно так же. Когда множество людей делают развертывания, тогда вредные привычки или процедуры легко расходятся, и именно тогда могут произойти ошибки. Автоматическое развертывание с помощью phng удобно, потому что, если все используют одну и ту же процедуру, вероятность ошибок значительно ниже. Phing позволяет легко следовать строгим процедурам, поскольку все, что нужно сделать разработчикам, - это запустить простую команду, такую как «phing deploy» или «phing build», или что у вас есть.
Теперь, возвращаясь к исходному вопросу, также полезно придерживаться этих процедур на локальных машинах разработки, а также на промежуточных, тестовых, производственных серверах, потому что, как и у людей, машины могут иметь небольшие идеосинкразии, которые отличаются от машины к машине. машина. С помощью phing вы можете разработать сценарий, который будет иметь одинаковые результаты на любом из ваших корпоративных компьютеров (в зависимости от силы и предназначения вашего кода, но phing живет в формате, который позволяет легко достичь этого идеала). Так что, если вы запускаете сборку phing из своего блока разработки, в идеале это будет иметь тот же эффект, если вы запускаете его из своего блока тестирования или с вашего производственного сервера. Если вы можете запустить развертывание таким же образом на любом компьютере, вы можете быть уверены, что любые проблемы, возникшие после развертывания, не были результатом ваших процедур развертывания (так как они не будут отличаться от того, когда вы развернули свое тестирование или локальное устройство разработки) .
Очень приятно иметь возможность развертывать мой код на моем локальном компьютере точно так же, как я использую его для развертывания в рабочей среде.
Что касается того, что лучше всего делать, я говорю, почему не все вышеперечисленное? Если вы можете запустить его локально, то вы можете запустить его удаленно. Если процедуры развертывания являются сильными, то результат будет таким же.