Я уже потратил несколько часов на поиск ответа на свой вопрос, но так и не нашел подходящего ответа.
По сути, я взял на себя проект PHP, который использует composer для добавления сторонних библиотек / зависимостей. Тем не менее, многие зависимости больше не управляются, и возможно, что автор может полностью удалить их из github в любое время.
В настоящее время я думаю, что мне нужно проверить всю папку vendor, поэтому, даже если библиотеки больше не доступны через composer, они все равно будут у меня.
В качестве альтернативы, я мог бы разорвать эти репозитории библиотек и иметь композитора, чтобы вытащить из моей учетной записи вместо этого. Это приемлемо?
Я действительно надеюсь получить совет о том, как лучше всего с этим справиться.
Заранее спасибо!
Должен ли я зарегистрировать всю папку vendor, поэтому даже если библиотеки больше не доступны через composer, они все равно будут у меня?
Я предлагаю создать резервную ветку, содержащую ваше приложение со всеми его поставщиками. Просто сделай git checkout -b {VERSION}-backup
, с последующим composer install
(который дает вам composer.lock
и все зависимости в определенной папке поставщика), а затем git push origin {VERSION}-backup
,
Это позволяет полагаться на динамическое управление пакетами, если пакеты доступны через Packagist и загружаются из их источника (Github и т. Д.).
Теперь, если зависимость удаляется и становится недоступной, вы удаляете ее из composer.json
и объединить код из последнего {VERSION}-backup
ветвь в мастер ветку. = Вы заменили динамическую зависимость статической зависимостью от вашей резервной копии.
Кстати: вы когда-нибудь задумывались о проведении аудита безопасности для вашего кода?
Это не будет работать с динамически вытащенными зависимостями. Аудит безопасности проводится для конкретных версий — для статического набора зависимостей. С учетом этого контекста добавление полного приложения со всеми его зависимостями является обычным явлением и является наилучшей практикой. Но что у нас есть: Composer в бэкэнде для установки новых тем и composer устанавливают —no-dev —optimize-autoload на рабочий бокс для «установки» программного обеспечения. Современное время 😉
Могу ли я раскошелиться на репозитории этих библиотек и сделать так, чтобы композитор извлек их из моей учетной записи Это приемлемо?
Да! И вы также можете попросить парней из Packagist удалить ненужные пакеты или заменить их или назначить псевдоним новой персональной вилке.
Это действительно зависит от того, нужно ли оптимизировать ваш проект для переносимости или нет.
Хотя с нарушением передовой практики лучше обезопасить себя, чем с сожалением из-за недоступной зависимости, которую вы должны потратить на замену и рефакторинг для …
От нее packagist — теоретически это возможно, но вряд ли.
Из практики основная проблема с пакетами напрямую связана с CVS. Но если это живой проект, вы можете найти другую копию кода для восстановления функционала.