Private repo composer.json no se usa

Mi problema es que el compositor.json de un repository privado parece estar roto cuando intenta usarlo como un package en otro lugar.

Tengo un repository privado con el código necesario para otros proyectos. El compositor.json del repository se ve así:

{ "name": "somevendor/global", "require": { "nesbot/carbon": "^1.21" }, "autoload": { "psr-4": { "" : "src/" }, "files": [ "somedir/somefile.php" ] } } 

El src está en el directory base del repository y contiene classs de espacio de nombres PSR-4. Tengo carpetas de espacio de nombres dentro de eso, por ejemplo, un directory de Foo con classs en el espacio de nombres de Foo :

 -- src -- Foo // some Foo\... classes // some global namespace classes -- somedir somefile.php // A file with helper functions 

En la carpeta del proyecto, estoy accediendo al somevendor/global través de un file composer.json:

 { "require": { "somevendor/global-folder": "dev-master" }, "repositories": [ { "type": "package", "package": { "name": "somevendor/global", "version": "dev-master", "type": "package", "source": { "url": "git@bitbucket.org/somevendor/global.git", "type": "git", "reference": "master" } } } ] } 

Ejecutar la composer install en la carpeta del proyecto parece funcionar al principio. He instalado las keys SSH correctamente para que pueda acceder al repository privado en Bitbucket y tomar los files:

 $ composer install Loading composer repositories with package information Updating dependencies (including require-dev) - Installing somevendor/global (dev-master master) Cloning master Writing lock file Generating autoload files 

Y luego, en el código PHP del proyecto, require vendor/autoload.php , pero ninguna de las classs se carga automáticamente, incluido el package Carbon especificado en el primer file repo's composer.json:

Fatal error: Uncaught Error: Class 'Foo\Foo' not found in...

Claramente he cometido un error aquí, ¿he estructurado el primer repository erróneamente?

Lo "resolví" sacando todas las inputs "require" del file composer.json del repository remoto y moviéndolos al file composer.json del website local.

Así es como se veían los files:

El composer.json privado remoto de repo: json:

 { "name": "somevendor/global", "license": "proprietary", "autoload": { "psr-4": { "" : "src/" }, "files": [ "functions/functions.php" ] } } 

El composer.json del website local:

 { "require": { "nesbot/carbon": "^1.21", "somevendor/global": "dev-master" }, "repositories": [ { "type": "vcs", "url": "git@bitbucket.org:somevendor/global.git" } ] } 

No dejaba de lanzar Composer\Repository\InvalidRepositoryException porque olvidé poner el name en el file composer.json del repository remoto, así que no olvides ese bit.

También recuerde configurar sus teclas git ssh si las ha configurado. Usé este tutorial de Bitbucket para hacer esto.