¿Debo registrar las bibliotecas en la carpeta del proveedor que el compositor ha instalado?

Ya he pasado unas horas buscando una respuesta a mi pregunta, pero todavía no he encontrado una respuesta adecuada.

Básicamente, me he hecho cargo de un proyecto de PHP que utiliza el compositor para get bibliotecas / dependencies de terceros. Sin embargo, muchas de las dependencies ya no se administran y es posible que el autor las elimine por completo de github en cualquier momento.

Actualmente estoy pensando que debería consultar toda la carpeta de proveedores, incluso si las bibliotecas ya no están disponibles a través del compositor, aún las tendré conmigo.

Alternativamente, podría bifurcar el repository de bibliotecas y tener un compositor para extraer de mi count. ¿Es esto aceptable?

Realmente espero get algunos consejos sobre el mejor método para lidiar con esto.

¡Gracias por adelantado!

Realmente depende de si su proyecto debe ser optimizado para la portabilidad o no. Aunque es mejor evitar una violación a las mejores prácticas que lamentar una dependencia no disponible a la que tiene que dedicar time reemplazando y refactorizando …

De su empaquetador : teóricamente es posible pero improbable. Desde la práctica, el problema principal con packages directamente conectados a CVS. Pero si es un proyecto en vivo, tus allays pueden encontrar otra copy de código para recuperar funcional.

¿Debo registrar toda la carpeta del proveedor, así que incluso si las bibliotecas ya no están disponibles a través del compositor, todavía las tendré conmigo?

Mi sugerencia es crear una twig de respaldo que contenga su aplicación con todos sus proveedores. Simplemente haga una git checkout -b {VERSION}-backup , seguida de la composer install (que le proporciona el composer.lock y todas las dependencies en la carpeta del proveedor definida) y luego un git push origin {VERSION}-backup .

Esto permite confiar en la gestión dinámica de packages, siempre que los packages estén disponibles a través de Packagist y puedan downloadse de su fuente (Github, etc.). Ahora, en caso de que una dependencia se elimine y no esté disponible, quítela de su composer.json y fusione el código de la última twig de {VERSION}-backup en la twig principal. = Reemplazó una dependencia dinámica con una estática de su copy de security.

Por cierto: ¿alguna vez pensaste en get una auditoría de security para tu código? Esto no funcionará, con dependencies dinámicamente tiradas. Las auditorías de security se realizan para versiones específicas, para un set estático de dependencies. Dado este context, presionar en una aplicación completa con todas sus dependencies es común y una mejor práctica. Pero qué tenemos: Compositor en el backend para instalar nuevos temas e instalar compositor –no-dev –optimize-autoload en la caja de producción para "instalar" el software. Tiempos modernos 😉

¿Podría bifurcar ese repository de bibliotecas y tener compositor para extraer de mi count en su lugar. ¿Es esto aceptable?

¡Sí! Y también puede pedirles a los muchachos de Packagist que eliminen los packages que ya no tienen mantenimiento o los reemplacen o aliasen a un nuevo tenedor personal.