librerias example composer php json repository package composer-php

php - example - No se puede hacer funcionar el repositorio de "ruta" del compositor



librerias php composer (3)

Tengo una estructura de directorios así:

composer.json < Main packages/ balunker/ testpackage/ composer.json < Package src/ TestPackage.php

El principal composer.json ve así:

{ "name": "vagrant/composer-test", "repositories": [ { "type": "path", "url": "packages/*/*" } ], "require": { "balunker/testpackage": "*" } }

Mientras que el paquete composer.json ve así:

{ "name": "balunker/testpackage", "autoload": { "psr-4": { "Balunker//": "src/" } } }

En la composer update editor, simplemente recibo un mensaje que indica que el paquete no se pudo resolver. No se crean enlaces simbólicos y no se instala ningún paquete. Literalmente, he pasado la mitad de mi día resolviendo esto, sin ningún éxito.

También subí una salida detallada de composer update -vvv detallada de esto: http://pastebin.com/mMRHsACk .

Mi versión de compositor es la última (desde el 20 de abril de 2016 a las 2:39 pm UTC) y todo esto se está ejecutando dentro de Vagrant (Debian).

CUALQUIER recomendación de aquí es muy apreciada. Realmente no sé qué más hacer.


Lo que funcionó para mí fue muy similar al anterior, pero tuve que apuntar específicamente a la rama en la que estaba desarrollando.

Asumiendo código en el directorio / newapp en el mismo nivel que / app, y una rama llamada feature / the-new-package:

"repositories": [ { "type": "path", "url": "newapp" } ], "require": { "package/newapp": "dev-feature/the-new-package" },

/ * No funcionó, ni tampoco dev-master. Tenía que ser dev-feature / the-new-package.


Para futuros Googlers, agregue su versión a composer.json y luego requiera el paquete con la opción --prefer-source .

Por ejemplo: el composer require your-vendor/package:1.0.* --prefer-source


También publiqué el tema en Github y resulta que la documentación es un poco engañosa. Dice:

{ "repositories": [ { "type": "path", "url": "../../packages/my-package" } ], "require": { "my/package": "*" } }

Sin embargo, si solo tienes un repositorio local sin lanzamientos, debes usar:

{ "repositories": [ { "type": "path", "url": "../../packages/my-package" } ], "require": { "my/package": "dev-master" } }

La versión dev-master es la clave aquí (dado que estás trabajando en la rama maestra). Esto fue un poco exasperante, pero gracias a algunos colaboradores de compositores que me ayudaron, finalmente pude controlarlo.

Espero que esto pueda ayudar a alguien en el futuro.

¡Buena suerte!