Ver índice de contenidos del libro

5.8. La propiedad target-dir

Indica el directorio de destino donde se instalan los archivos del paquete. Esta propiedad es necesaria cuando el directorio raíz de tu paquete se encuentra en algún nivel secundario del namespace correspondiente.

Un buen ejemplo del uso de esta propiedad es el proyecto Symfony. Cada uno de sus componentes tiene un paquete. Así por ejemplo, el componente Yaml se define bajo el namespace Symfony\Component\Yaml. El directorio raíz de este paquete es el directorio Yaml definido al final del namespace.

Para que la carga automática de clases funcione bien, este paquete no se debe instalar en el directorio vendor/symfony/yaml sino en el directorio vendor/symfony/yaml/Symfony/Component/Yaml, para que así el cargador de clases pueda cargarlo a partir del directorio vendor/symfony/yaml.

De esta forma, el paquete Yaml define sus propiedades autoload y target-dir de la siguiente manera:

{
    "autoload": {
        "psr-0": { "Symfony\\Component\\Yaml\\": "" }
    },
    "target-dir": "Symfony/Component/Yaml"
}

Esta propiedad es opcional.