Usar una librería PHP desde un repositorio subversion privado con composer

  Desarrollo

Composer utiliza por defecto el repositorio Packagist para descargar las librerías publicadas en él. Sin embargo es posible registrar otros repositorios en el archivo composer.json. En este artículo vamos a ver como ejemplo una librería publicada en el subversion de Assembla.

Publicar una librería en subversion

En primer lugar hay que configurar el proyecto de la librería a publicar a través de su composer.json:

{
  "name": "stl4me/Nombre",
  "autoload": {
    "psr-4": {
      "stl4me\\Nombre\\": "src/"
    }
  }
}

Lo más importante es el nombre del «package» con la estructura «vendor/name». La sección autoloader referencia al código fuente de la librería. El siguiente paso sería realizar el commit del proyecto a subversion.

Usar el proyecto desde subversion

Pasa usar esta librería en otro proyecto hay que realizar varias configuraciones en el composer.json.

{
  "config": {
    "http-basic": {
      "subversion.assembla.com": {
        "username": "assembla-user",
        "password": "assembla-pass"
      }
    }
  },
  "repositories": [
    {
      "type": "vcs",
      "url": "https://subversion.assembla.com/svn/vendor/",
      "trunk-path": "trunk/name/site"
    }
  ],
  "require": {
    "vendor/name": "dev-master"
  }
}

En la sección repositories se especifica que se utiliza un VCS (Version Control System) y su URL. Para el caso específico de subversion se puede especificar una ruta distinta para el trunk, branches y tags. En este caso, se utiliza un único repositorio de Assembla para el «vendor» donde los diferentes proyectos son carpetas. Para especificar una librería en concreto hay que indicar donde está el composer-json (subdirectorio «site» de la capeta del proyecto «name»).

Como se trata de un repositorio privado hay que indicar las credenciales de acceso en la sección config con la etiqueta «http-basic». Esto se puede utilizar para cada uno de los repositorios configurados.

Finalmente con «dev-master» indicamos que utilice la última versión en el trunk.

Una vez lanzado el update del composer se podrá utilizar las clases de la librería referenciando mediante «use vendor\name\folder\class;»

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.