Как вы обрабатываете библиотечные зависимости во время развертывания с использованием PHP? - PullRequest
6 голосов
/ 02 октября 2009

это вопрос в основном о PHP. Мне было интересно: как вы убедитесь, что все необходимые библиотеки упакованы с вашим приложением при развертывании на (производственных) серверах?

Более конкретный пример: у меня есть приложение, работающее на Zend Framework, и каждый раз, когда я откатываю приложение на сервер, процесс развертывания создает новую «установку» в этой системе. Поэтому мне нужно связать Zend Framework вместе с моим приложением, а затем скопировать файлы в нужные места вместе (это делается автоматически). В настоящее время я использую определение svn: externals для извлечения файлов из системы Zend SVN во время развертывания, однако я не хочу полагаться на этот SVN и не хочу помещать трафик на внешние SVN при каждом развертывании .

В мире Java я привык к Maven, который обрабатывает такие вещи, используя центральные хранилища артефактов. Я знаю, что существует версия Maven4PHP, однако я больше ищу решение на основе PHP. Кроме того, я не верю, что PEAR - это хороший путь, поскольку он не соответствует моему требованию по объединению приложений (включая libs) в один развертываемый.

Есть ли какой-нибудь инструмент, который я уже не знаю? Или у тебя есть какая-нибудь замечательная техника, которую я должен знать?

Большое спасибо за вашу помощь!

Michael

Ответы [ 3 ]

3 голосов
/ 23 ноября 2011

Я думаю, что ветвление вендора решит проблему на вашем примере довольно просто, но если вам не нравятся большие репозитории, я бы порекомендовал продолжать смотреть на современные игрушки, такие как composer и что это решает (а может быть phark , я никогда раньше не слышал :))

3 голосов
/ 02 октября 2009

Существует система сборки под названием Phing , написанная на PHP и основанная на Apache Ant.

Лично я очень хорошо могу жить с внешними.

0 голосов
/ 23 мая 2011

Он еще не готов к производству, но вы можете следить за проектом Phark . Это порт Bundler для PHP.

Просматривая слайды Упрощение управления внешними зависимостями , я наткнулся на инструмент под названием pantr, который можно использовать в качестве установщика PEAR. pantr в качестве установщика PEAR , который позволяет указывать ваши зависимости в конкретном файле проекта.

Статья Контроль версий! = Управление зависимостями содержит некоторую информацию об использовании нового установщика PEAR под названием Pyrus

...