Sie sind auf Seite 1von 13

Inicio Libros Tutoriales Eventos Foro Buscar

Cmo crear tu propio


repositorio de Composer
Satis es un generador esttico de repositorios de tipo composer . En otras palabras, es
una versin ultra-ligera y ultra-simplificada de Packagist que funciona mediante archivos
estticos. Satis se utiliza para crear repositorios de Composer para los paquetes
privados de tu empresa.

Satis es una herramienta gratuita y de software libre, que puedes descargar en


github.com/composer/satis o instalarla mediante Composer ejecutando el siguiente
comando:

$ composer.phar create-project composer/satis --stability=dev

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Configuracin
Supongamos que dispones de varios paquetes que quieres utilizar en los proyectos de
tu empresa pero que no quieres o no puedes publicarlos libremente. En primer lugar,
define la configuracin de Satis en un archivo de tipo JSON que puedes llamar como
quieras.

En este archivo defines los repositorios donde se encuentran tus paquetes privados, tal
y como se explica en el captulo de repositorios del libro de Composer.

A continuacin se muestra un ejemplo de este archivo de configuracin, donde se


definen tres repositorios de tipo VCS (tambin puedes definir cualquier otro tipo de
repositorio). Despus, se define la propiedad "require-all": true para indicar que se
deben seleccionar todas las versiones de todos los paquetes que se encuentren en esos
repositorios.

The default file Satis looks for is satis.json in the root of the repository.

{
"name": "Mi Repositorio",
"homepage": "http://packages.example.org",
"repositories": [
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
{ "type": "vcs", "url": "http://github.com/mycompany/privaterepo"
},
{ "type": "vcs", "url": "http://svn.example.org/private/repo" },
{ "type": "vcs", "url": "http://github.com/mycompany/privaterepo2
" }
],
"require-all": true
}

Si quieres seleccionar con ms precisin los paquetes del repositorio, puedes definir el
listado de paquetes utilizando la habitual opcin require de Composer. Para cada
paquete puedes indicar una versin especfica o utilizar el valor "*" para seleccionar
todas las versiones disponibles.

{
"repositories": [
{ "type": "vcs", "url": "http://github.com/mycompany/privaterepo"
},
{ "type": "vcs", "url": "http://svn.example.org/private/repo" },
{ "type": "vcs", "url": "http://github.com/mycompany/privaterepo2
" }

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
],
"require": {
"company/package": "*",
"company/package2": "*",
"company/package3": "2.0.0"
}
}

Una vez creado el archivo de configuracin, ejecuta el siguiente comando para crear el
repositorio de paquetes:

$ php bin/satis build <archivo_configuracion> <directorio>

Si ejecutas por ejemplo el comando php bin/satis build config.json web/ , Satis lee
el archivo de configuracin config.json y crea un repositorio esttico de paquetes
dentro del directorio web/ .

Despus de ejecutar a mano el comando anterior para comprobar que todo funciona
bien, lo normal es que ejecutes este comando mediante una tarea programada en el
servidor, de forma que el repositorio de paquetes est siempre actualizado.

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Si los paquetes privados se encuentran alojados en Github, tu servidor tiene que tener la
clave SSH que le permita acceder a esos paquetes. Adems, tienes que ejecutar el
comando con la opcin --no-interaction (o -n ) para que no te pregunte por la
contrasea y as utilice esa clave SSH. Este truco tambin es muy til para los servidores
de integracin continua.

Por ltimo, crea un virtual host en tu servidor web que apunte al directorio web/ anterior
y ya dispondrs de tu propio mini-Packagist. Si dispones de PHP 5.4 o superior, puedes
incluso utilizar el servidor web que viene incluido con PHP. Para ello, ejecuta el
comando php -S localhost:port -t web/ .

Usando paquetes privados en tus proyectos


Para utilizar los paquetes privados en tus proyectos, lo nico que debes hacer es aadir
una lnea de configuracin indicando la URL de tu repositorio privado. Suponiendo que
la URL del repositorio de tu empresa sea packages.example.org , la configuracin sera:

{
"repositories": [
{ "type": "composer", "url": "http://packages.example.org/" }

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
],

"require": {
"company/package": "1.2.0",
"company/package2": "1.5.2",
"company/package3": "dev-master"
}
}

Simplemente aadiendo el repositorio en la propiedad repositories de tu archivo


composer.json ya tienes acceso a todos los paquetes privados del repositorio creado
con Satis. Y como es habitual regenerar con frecuencia el repositorio, tus proyectos
tendrn acceso a todos los nuevos paquetes y nuevas versiones sin tener que hacer
ningn cambio.

Protegiendo los repositorios privados


Si quieres proteger el acceso a tu repositorio privado, puedes utilizar un certificado para
protegerlo con SSH o SSL. Configura los datos de acceso al servidor en la propiedad
options del archivo composer.json de tus proyectos.

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
El siguiente ejemplo muestra cmo configurar el acceso va SSH, que a su vez requiere
disponer de la extensin SSH2 de PHP instalada mediante PECL (ver ms opciones de
configuracin SSH):

{
"repositories": [
{
"type": "composer",
"url": "ssh2.sftp://example.org",
"options": {
"ssh2": {
"username": "composer",
"pubkey_file": "/home/composer/.ssh/id_rsa.pub",
"privkey_file": "/home/composer/.ssh/id_rsa"
}
}
}
]
}

Y el siguiente ejemplo muestra la configuracin necesaria para acceder a un repositorio

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
a travs de SSL con un certificado (ver ms opciones de configuracin SSL):

{
"repositories": [
{
"type": "composer",
"url": "https://example.org",
"options": {
"ssl": {
"local_cert": "/home/composer/.ssl/composer.pem",
}
}
}
]
}

Creando paquetes descargables


Cuando Satis crea el repositorio para los paquetes alojados en Github o BitBucket, utiliza
la direccin original de descarga de los paquetes. Esto significa que si Github o

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Bitbucket tienen problemas o estn cados, no podrs instalar ni actualizar tus paquetes
privados.

Para hacer que Satis cree paquetes descargables para los repositorios de tipo Git,
Mercurial y Subversion, aade la siguiente configuracin en el archivo satis.json :

{
"archive": {
"directory": "dist",
"format": "tar",
"prefix-url": "https://amazing.cdn.example.org",
"skip-dev": true
}
}

Cada una de las opciones de configuracin se interpreta de la siguiente manera:

directory : indica el directorio donde se guardan los paquetes descargables (en


este caso, dist/ ). Este ruta es relativa respecto al directorio indicado en la
propiedad output-dir .

format : (opcional) formato de los paquetes descargables. Su valor por defecto es

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
zip y el otro valor permitido es tar .

prefix-url : (opcional) prefijo que se aade a las URL de los paquetes, lo que
permite alojarlos en CDNs y otros servidores especiales.

skip-dev : (opcional) su valor por defecto es false . Cuando vale true , Satis no crea
paquetes descargables de las ramas de cada repositorio.

La opcin prefix-url es muy til para alojar los paquetes en una CDN o en el servicio
Amazon S3. De esta forma puedes reducir drsticamente el tiempo necesario para
descargar, y por tanto instalar, los paquetes.

Si por ejemplo la propiedad prefix-url es http://my-bucket.s3.amazonaws.com y la


propiedad directory es dist , las URL completas de los paquetes descargables sern
del tipo: http://my-bucket.s3.amazonaws.com/dist/vendor-package-version-
ref.zip .

Comentarios

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
0 Comentarios LibrosWeb
1 Acceder

Ordenar por los mejores


Recomendar Compartir

S el primero en comentar...

S el primero en comentar.

Suscrbete d Aade Disqus a tu sitio web Privacidad

Fecha de publicacin
13 de junio de 2013
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
ETIQUETAS POPULARES
composer css diseo html javascript php programacin sistemas symfony

SUSCRBETE GRATIS
RSS Todos los tutoriales

RSS Tutoriales de diseo

RSS Tutoriales de programacin

3.757
2006-2017 LibrosWeb.es Contacto Novedades Condiciones Privacidad

das online

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com

Das könnte Ihnen auch gefallen