Agregar un package con Composer (a través de SVN)

Creé un repository SVN para mi biblioteca personal de PHP y agregué un file composer.json en el nivel raíz:

{ "name": "myPersonalLibrary/lib", "type": "library", "description": "Light MVC framework for PHP 5.4", "keywords": ["database","mvc"], "homepage": "http://mysite.com", "license": "MIT", "require": { "php": ">=5.3.0", "mustache/mustache": "dev-master" }, "autoload": { "psr-0": { "bbn": "src" } } } 

Luego creé un proyecto con el siguiente composer.json:

 { "require": { "monolog/monolog": "1.0.*", "zerkalica/php-code-sniffer": "dev-master", "mustache/mustache": "dev-master", "myPersonalLibrary/lib": "*" }, "repositories": [ { "type": "svn", "url": "https://mysite.com/svn/myPersonalLibrary", "branches-path": false, "tags-path": false, "trunk-path": "src" } ] } 

Y cuando bash actualizar mi proyecto, obtengo: No valid composer.json was found in any branch or tag of https...

Creo que el problema proviene de la estructura de mi file, pero no pude encontrar ninguna documentation sobre esto:

 /my_repo /src /lib /api /db /file /html .... /mvc.php /obj.php /composer.json 

Traté de publicar mi URL en packagist.org y obtuve No valid/supported repository was found at the given URL

Si utiliza el layout del repository recomendado oficialmente con una "raíz del proyecto" (que contiene exactamente tres subdirectorys: /trunk , /branches y /tags ), entonces esto debería funcionar para usted:

Para su biblioteca PHP, cree composer.json en la raíz del proyecto en el tronco (y confínelo). Por ejemplo:

 { "name": "myProject/myLibrary", "description": "My Personal Library", "license": "proprietary", "require": { "php": ">=5.3" }, "autoload": { "classmap": ["src/"] } } 

Digamos que el repository de su biblioteca está disponible en http://svn.example.com/path/to/myLibrary . El layout entonces sería:

 /path/to/myLibrary /trunk /composer.json /src ... /branches /tags 

Luego, en su proyecto, donde quiera usar su biblioteca, cree composer.json con los siguientes contenidos:

 { "repositories": [ { "type": "vcs", "url": "http://svn.example.com/path/to/myLibrary" } ], "require": { "nette/nette": "~2.2", "myProject/myLibrary": "@dev" } } 

La key es usar @dev como la versión requerida para su biblioteca si solo tiene composer.json en trunk todavía. Una vez que cree una label desde el tronco, puede comenzar a usar numbers de versión. Por ejemplo, si svn copy ^/trunk ^/tags/1.0.0 , puede usar "myProject/myLibrary": "~1.0" como número de versión.

Intente get más información llamando a la actualización -v del compositor para get una list de posibles cadenas de versiones que puede usar.

Por ejemplo, obtuve la información de que el nombre correcto para recuperar el enlace era esta configuration:

 { "name": "sample/test", "type": "library", "version": "0.0.0", "time" : "2013-04-16", "description": "Testing ...", "repositories": [ { "type": "svn", "url": "http://framework.zend.com/svn/framework/standard" } ], "require": { "php": ">=5.3.3", "zendframework/zendframework1" : "dev-trunk" } } 

Llamando al compositor con -v como argumento, obtendrá una list de twigs, tags y el tronco, si se encuentra. No sé si se permite falso como ruta para tags y twigs …

 $ composer update -v Loading composer repositories with package information Reading composer.json of zendframework/zendframework1 (release-0.1.1) Skipped tag 0.1.1, no composer file was found Reading composer.json of zendframework/zendframework1 (release-0.1.2) Skipped tag 0.1.2, no composer file was found Reading composer.json of zendframework/zendframework1 (release-0.1.3) Skipped tag 0.1.3, no composer file was found .... Reading composer.json of zendframework/zendframework1 (release-1.9.6) Importing tag 1.9.6 (1.9.6.0) Reading composer.json of zendframework/zendframework1 (release-1.9.7) Importing tag 1.9.7 (1.9.7.0) Reading composer.json of zendframework/zendframework1 (release-1.9.8) Importing tag 1.9.8 (1.9.8.0) Reading composer.json of zendframework/zendframework1 (trunk) Importing branch trunk (dev-trunk) Reading composer.json of zendframework/zendframework1 (bughuntday) Skipped branch bughuntday, no composer file was found Reading composer.json of zendframework/zendframework1 (development-2.0) Skipped branch development-2.0, no composer file was found Reading composer.json of zendframework/zendframework1 (pdo_ibm_ids_support) Skipped branch pdo_ibm_ids_support, no composer file was found Reading composer.json of zendframework/zendframework1 (release-1.0) Importing branch release-1.0 (dev-release-1.0) Reading composer.json of zendframework/zendframework1 (release-1.10) Importing branch release-1.10 (dev-release-1.10) .... Reading composer.json of zendframework/zendframework1 (release-1.8) Importing branch release-1.8 (dev-release-1.8) Reading composer.json of zendframework/zendframework1 (release-1.9) Importing branch release-1.9 (dev-release-1.9) Reading composer.json of zendframework/zendframework1 (rob_allen) Skipped branch rob_allen, no composer file was found Reading composer.json of zendframework/zendframework1 (user) Skipped branch user, no composer file was found Updating dependencies (including require-dev) 

Puede ignorar todo salvo esta línea, que le indica qué debe establecer como versión solicitada:

 Importing branch trunk (dev-trunk)