使用composer

时间:2016-06-06 10:08:06

标签: git composer-php

我正在编写一个可用于我未来项目的框架。 我想把框架放到一个私有托管的git服务器上,并在我未来的项目中用composer加载它。

我可以知道我什么时候开始,应该" - 裸露"使用? 我曾经创造过"裸露的#34;回购,但作曲家说没有找到包裹。我已经四处寻找,并认为这是因为#er;缺少了composer.json"。 但是,如果没有" - 裸",我甚至无法将我的代码推送到服务器。我" git clone"框架到另一个位置,并用作曲家加载位置,仍然失败。

我尝试过以下两个版本,都失败了:

"repositories": [
    {
        "type": "vcs",
        "url": "https://server/git/sdk/"
    }
]

"repositories": [
    {
        "type": "package",
        "package": {
            "name": "vendor/sdk",
            "version": "master",
            "source": {
                "url": "https://server/git/sdk/",
                "type": "git",
                "reference": "master"
            }
        }
    }
]

感谢。

1 个答案:

答案 0 :(得分:4)

我引用了有关如何从VCS加载包的官方文档: https://getcomposer.org/doc/05-repositories.md#using-private-repositories

要求私有项目B,您需要在公共项目A的composer.json文件中有两件事:

  1. 将存储库定义为类型vcs,其中包含服务器上私有存储库的URL
  2. 需要它

    {
        "name": "project A",    
        "description": "public project A requiring private project B",
        "require": {
            "vendor/my-private-repo": "dev-master"
        },
        "repositories": [
            {
                "type": "vcs",
                "url":  "git@your-server.com:vendor/my-private-repo.git"
            }
        ]
    }
    
  3. 然后运行Composer。它将私有项目B提取到项目A的供应商文件夹中。

      

    我可以知道我什么时候开始,应该" - 裸露"使用?我曾经创造过"裸露的#34;回购,但作曲家说没有找到包裹。我已经四处寻找,并认为这是因为#er;缺少了composer.json"。

    git init --bare创建一个没有工作树的存储库。这意味着存储库不包含源文件的工作或签出副本。只有repo的git修订历史存储在存储库的根文件夹中(而不是存储在.git子文件夹中)。

      

    我" git clone"框架到另一个位置,并用作曲家加载位置,仍然失败。

    您不需要git clonegit init存储库来存储本地副本,只需使用Composer直接从私有服务器获取。

    我们有以下情况:

    • 带有composer.json的项目A应该从私人仓库获取项目B.
    • 我们要离开git,让Composer进行提取。不要手动提取。
    • 并只关注composer.json方面以解决此问题(见上文)

    旁注:您发布的第二个repository定义定义了packagehttps://getcomposer.org/doc/05-repositories.md#package-2中对此进行了描述 你是免费的,需要私人仓库作为一个包,但这里不需要它,因为上面的composer.json应该可以正常工作。