Стоит ли проверять библиотеки в папке vendor, которые загружаются композитором?

Я уже потратил несколько часов на поиск ответа на свой вопрос, но так и не нашел подходящего ответа.

По сути, я взял на себя проект PHP, который использует composer для добавления сторонних библиотек / зависимостей. Тем не менее, многие зависимости больше не управляются, и возможно, что автор может полностью удалить их из github в любое время.

В настоящее время я думаю, что мне нужно проверить всю папку vendor, поэтому, даже если библиотеки больше не доступны через composer, они все равно будут у меня.

В качестве альтернативы, я мог бы разорвать эти репозитории библиотек и иметь композитора, чтобы вытащить из моей учетной записи вместо этого. Это приемлемо?

Я действительно надеюсь получить совет о том, как лучше всего с этим справиться.

Заранее спасибо!

1

Решение

Должен ли я зарегистрировать всю папку 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 удалить ненужные пакеты или заменить их или назначить псевдоним новой персональной вилке.

1

Другие решения

Это действительно зависит от того, нужно ли оптимизировать ваш проект для переносимости или нет.
Хотя с нарушением передовой практики лучше обезопасить себя, чем с сожалением из-за недоступной зависимости, которую вы должны потратить на замену и рефакторинг для …

0

От нее packagist — теоретически это возможно, но вряд ли.
Из практики основная проблема с пакетами напрямую связана с CVS. Но если это живой проект, вы можете найти другую копию кода для восстановления функционала.

0
По вопросам рекламы [email protected]