librerias example composer php dependency-management composer-php packagist satis

php - example - ¿Puedo sincronizar o duplicar dependencias de packagist.org con mi propia instalación de Composer Satis?



repo packagist (2)

Tenemos nuestro propio repositorio Satis, podemos almacenar allí nuestras propias dependencias. Esto funciona bien.

Pero si un desarrollador utiliza un paquete que no está en nuestro propio repositorio, Composer lo obtendrá de GitHub a través de packagist.org (como alternativa).

Pero no queremos ser dependientes de packagist.org. Todas las dependencias deben ser descargadas desde nuestro propio repositorio.

Lo que nos gustaría saber, si es posible que Satis descargue un paquete de Packagist, si aún no está disponible localmente, y luego lo almacene y lo agregue automáticamente al propio repositorio de Satis.

De esta manera no tenemos que agregar manualmente las dependencias al repositorio de Satis.


Puede utilizar el broker para lograr esto por ahora. Es muy probable que esta capacidad se agregue para satisfacerse en la línea.


Satis ahora apoya esto.

Simplemente siga las instrucciones de configuración de Satis y agregue lo siguiente a su archivo de configuración (que se denomina satis.json de forma predeterminada). Actualice el prefijo-url y requiera según corresponda.

{ "repositories": [ { "type": "composer", "url": "https://packagist.org" } ], "require-dependencies": true, "require": { {{your application dependencies from composer.json}} }, "archive": { "directory": "dist", "prefix-url": "{{your server}}", "skip-dev": true } }

Entonces, puedes crear tu repositorio Satis como normal:

php bin/satis build <configuration file> <build dir>

Ahora, su repositorio Satis satisfará todas las dependencias de su aplicación.

Nota: la primera ejecución puede tomar un tiempo. Las ejecuciones posteriores son mucho más rápidas. Además, tenga en cuenta que Satis utiliza / tmp para su caché. En un sistema de memoria pequeña donde / tmp está respaldado por tmpfs, es posible que deba aumentar el espacio / tmp que tiene disponible si tiene un gran árbol de dependencias.

También es posible que desee deshabilitar el repositorio de Packagist en el archivo composer.json de su proyecto para exigir que todas las dependencias provengan de su repositorio de Satis. Para hacer esto, agregue:

{ "repositories": [ { "packagist": false } ] }

al compositor de tu proyecto.json.