首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Composer添加包(通过SVN)

使用Composer添加包(通过SVN)
EN

Stack Overflow用户
提问于 2012-12-31 03:31:03
回答 1查看 9.6K关注 0票数 18

我为我的个人PHP库创建了一个SVN仓库,并在根目录添加了一个composer.json文件:

代码语言:javascript
复制
{
        "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"
                }
        }
}

然后我用下面的composer.json创建了一个项目:

代码语言:javascript
复制
{
    "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"
            }
    ]
}

当我尝试更新我的项目时,我得到:No valid composer.json was found in any branch or tag of https...

我认为问题出在我的文件结构上,但我找不到任何关于这方面的文档:

代码语言:javascript
复制
/my_repo
  /src
    /lib
      /api
      /db
      /file
      /html
      ....
      /mvc.php
      /obj.php
  /composer.json

我试着在packagist.org上发布我的网址,结果得到了No valid/supported repository was found at the given URL

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-24 02:41:53

如果您使用官方推荐的带有“项目根目录”的存储库布局(它恰好包含三个子目录:/trunk/branches/tags),那么这应该适用于您:

对于您的PHP库,在主干的项目根目录中创建composer.json (并提交它)。例如:

代码语言:javascript
复制
{
    "name": "myProject/myLibrary",
    "description": "My Personal Library",
    "license": "proprietary",
    "require": {
        "php": ">=5.3"
    },
    "autoload": {
        "classmap": ["src/"]
    }
}

假设您的库存储库可从http://svn.example.com/path/to/myLibrary获得。那么布局将是:

代码语言:javascript
复制
/path/to/myLibrary
  /trunk
    /composer.json
    /src
      ...
  /branches
  /tags

然后,在要使用库的项目中,创建包含以下内容的composer.json:

代码语言:javascript
复制
{
    "repositories": [
        {
            "type": "vcs",
            "url": "http://svn.example.com/path/to/myLibrary"
        }
    ],
    "require": {
        "nette/nette": "~2.2",
        "myProject/myLibrary": "@dev"
    }
}

关键是如果你在主干中还只有composer.json,那就使用@dev作为你的库所需的版本。一旦你从主干创建了一个标签,你就可以开始使用版本号了。例如,如果您使用svn copy ^/trunk ^/tags/1.0.0,那么您可以使用"myProject/myLibrary": "~1.0"作为您的版本号。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14093900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档