pkg librerias composer php svn composer-php packagist

librerias - package composer php



Añadiendo un paquete con Composer(a través de SVN) (2)

Creé un repositorio SVN para mi biblioteca PHP personal, y agregué un archivo 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 intento 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 archivo, pero no pude encontrar ninguna documentación sobre esto:

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

Intenté publicar mi URL en packagist.org y No valid/supported repository was found at the given URL encontró No valid/supported repository was found at the given URL


Intente obtener más información llamando a update -v del compositor para obtener una lista de posibles cadenas de versión que puede usar.

Por ejemplo, obtuve la información, que el nombre correcto para recuperar el troncal era esta configuración:

{ "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" } }

Si llama al compositor con -v como argumento, obtendrá una lista de ramas, etiquetas y el tronco, si se encuentra. No sé si se permite el falso como ruta para etiquetas y ramas ...

$ 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 de forma segura todas las excepciones exceptuadas por esta línea, que le indican qué debe configurar según la versión solicitada:

Importing branch trunk (dev-trunk)


Si usa el diseño de repositorio oficialmente recomendado con una "raíz de proyecto" (que contiene exactamente tres subdirectorios: /trunk , /branches , y /tags ), esto debería funcionar para usted:

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

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

Digamos que su repositorio de biblioteca está disponible en http://svn.example.com/path/to/myLibrary . El diseño entonces sería:

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

Luego, en su proyecto, donde desea utilizar su biblioteca, cree composer.json con el siguiente contenido:

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

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