Ver índice de contenidos del libro

5.13. Las propiedades avanzadas del archivo composer.json

5.13.1. La propiedad scripts

Composer te permite ejecutar tu propio código en varios puntos diferentes durante la instalación de los paquetes. Para ello tienes que crear los scripts tal y como se explica en el artículo Los scripts de Composer.

5.13.2. La propiedad extra

Esta propiedad permite definir cualquier tipo de opción o información que después pueden utilizar los scripts definidos en la propiedad scripts.

El valor de esta propiedad puede ser cualquier cosa y desde un script puedes acceder a ella mediante la siguiente llamada:

$extra = $event->getComposer()->getPackage()->getExtra();

Esta propiedad es opcional.

5.13.3. La propiedad bin

Indica la lista de archivos que deben considerarse como los ejecutables de este paquete y que por tanto, se enlazan simbólicamente desde el directorio configurado en la propiedad bin-dir.

Para conocer más sobre los archivos ejecutables de los paquetes, consulta el artículo en inglés Vendor binaries.

Esta propiedad es opcional.

5.13.4. La propiedad archive

Esta propiedad se tiene en cuenta al crear los archivos de los paquetes. La única opción soportada por el momento es la siguiente:

  • exclude: permite configurar una serie de patrones para excluir rutas. Los patrones se crean con el mismo formato que se utiliza en el archivo .gitignore. Por tanto, si añades el carácter ! al principio de un patrón, ese archivo o ruta se incluirá, independientemente de si ha sido excluido mediante otros patrones. Aunque el primer carácter del patrón sea /, las rutas siempre se consideran relativas respecto del directorio raíz del proyecto. Además, los asteriscos no se interpretan como cualquier elemento, ya que no incluyen por ejemplo la barra / de separación de directorios.

Ejemplo:

{
    "archive": {
        "exclude": ["/foo/bar", "baz", "/*.test", "!/foo/bar/baz"]
    }
}

Con esta configuración, se incluyen por ejemplo los archivos /dir/foo/bar/file, /foo/bar/baz, /file.php y /foo/my.test pero se excluyen archivos como /foo/bar/any, /foo/baz y /my.test.

Esta propiedad es opcional.