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.