Esta propiedad permite utilizar repositorios propios de paquetes. Composer por defecto sólo utiliza Packagist como repositorio de paquetes, por lo que esta propiedad te permite instalar paquetes desde cualquier otro repositorio.
Los repositorios no se resuelve recursivamente, y sólo se pueden añadir en el archivo composer.json
principal. Composer soporta los siguientes tipos de repositorios:
composer
: un repositorio de Composer simplemente consiste en un archivo llamadopackages.json
y servido vía Internet (mediante HTTP, FTP o SSH) , que contiene una serie de objetos de tipocomposer.json
con información de tipodist
y/osource
. El archivopackages.json
se descarga mediante un stream de PHP. Puedes configurar este stream con el parámetrooptions
.vcs
: se trata de un repositorio basado en un sistema de control de versiones, que puede descargar paquetes desde repositorios Git, Subversion y Mercurial.pear
: permite importar cualquier repositorio PEAR en tu proyecto.package
: esta opción permite añadir como dependencia a un proyecto que no tiene ningún tipo de soporte para Composer. Para ello se define el paquete en el propio archivo de configuración mediante la propiedadpackage
. El resultado es equivalente a incluir el inexistente archivocomposer.json
de ese paquete en tu propiocomposer.json
.
El siguiente capítulo sobre repositorios explica en detalle todos estos tipos de repositorios.
Ejemplo:
{
"repositories": [
{
"type": "composer",
"url": "http://packages.example.com"
},
{
"type": "composer",
"url": "https://packages.example.com",
"options": {
"ssl": {
"verify_peer": "true"
}
}
},
{
"type": "vcs",
"url": "https://github.com/Seldaek/monolog"
},
{
"type": "pear",
"url": "http://pear2.php.net"
},
{
"type": "package",
"package": {
"name": "smarty/smarty",
"version": "3.1.7",
"dist": {
"url": "http://www.smarty.net/files/Smarty-3.1.7.zip",
"type": "zip"
},
"source": {
"url": "http://smarty-php.googlecode.com/svn/",
"type": "svn",
"reference": "tags/Smarty_3_1_7/distribution/"
}
}
}
]
}
Nota El orden en el que definas los repositorios es muy importante, ya que Composer siempre busca los paquetes desde el primero hasta el último repositorio y se queda con el primero que encuentra. Packagist se añade siempre al final de todos los repositorios, de forma que tus propios repositorios siempre pueden redefinir cualquier paquete disponible en Packagist.