Symfony2 项目,Composer 没有安装包无法找到任何版本,

Symfony2 project, Composer not installing package unable to find any version,

您好,composer 的世界还很陌生,我在将软件包安装到 symfony2 时遇到了问题

有问题的包裹是:https://github.com/gridiron-guru/FantasyDataAPI

我的 composer.phar 如下所示:

{
    "name": "symfony/framework-standard-edition",
    "license": "MIT",
    "type": "project",
    "description": "The \"Symfony Standard Edition\" distribution",
    "autoload": {
        "psr-0": { "": "src/" }
    },
    "require": {
        "php": ">=5.3.3",
        "symfony/symfony": "2.4.*",
        "doctrine/orm": "~2.2,>=2.2.3",
        "doctrine/doctrine-bundle": "~1.2",
        "twig/extensions": "~1.0",
        "symfony/assetic-bundle": "~2.3",
        "symfony/swiftmailer-bundle": "~2.3",
        "symfony/monolog-bundle": "~2.4",
        "sensio/distribution-bundle": "~2.3",
        "sensio/framework-extra-bundle": "~3.0",
        "sensio/generator-bundle": "~2.3",
        "incenteev/composer-parameter-handler": "~2.0",
        "gridiron-guru/FantasyDataAPI" : "1.*"
    },
    "repositories": [ {
        "type": "vcs",
        "url": "https://github.com/gridiron-guru/FantasyDataAPI"
    }],
    "scripts": {
        "post-install-cmd": [
            "Incenteev\ParameterHandler\ScriptHandler::buildParameters",
            "Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap",
            "Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache",
            "Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::installAssets",
            "Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::installRequirementsFile"
        ],
        "post-update-cmd": [
            "Incenteev\ParameterHandler\ScriptHandler::buildParameters",
            "Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap",
            "Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache",
            "Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::installAssets",
            "Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::installRequirementsFile"
        ]
    },
    "config": {
        "bin-dir": "bin"
    },
    "extra": {
        "symfony-app-dir": "app",
        "symfony-web-dir": "web",
        "incenteev-parameters": {
            "file": "app/config/parameters.yml"
        },
        "branch-alias": {
            "dev-master": "2.4-dev"
        }
    }
}

当我 运行: php composer.phar 更新 我收到以下错误。

Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package gridiron-guru/fantasydataapi could not be found in any version, there may be a typo in the package
name.

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
   see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.

Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

在 Git Repo 上唯一的分支是 master:具有以下标签:

1.0.0, 1.1.0,  1.2.0

我试过使用 dev-master 和不同的版本号。 但无济于事。

我可以分叉回购然后为我的分叉设置我自己的@stable 标签吗? 我如何引用新的叉子?

这当然可能与版本无关,而只是找不到包,尽管我认为 composer.json 中的以下内容应该解决这个问题:

"repositories": [ {
        "type": "vcs",
        "url": "https://github.com/gridiron-guru/FantasyDataAPI"
    }],

我猜我不能只下载 src 并将其粘贴到我的供应商目录中,因为作曲家需要生成自动加载和其他 gubbins。

有什么想法可以尝试将此包放入我的项目中吗?

包的名称是错误的(在官方包文档中也是如此)。 根据库的composer.json,正确的名字是"gridiron-guru/fantasy-data-api"

因此,请尝试将 composer.json 中的这一行替换为:

    "gridiron-guru/FantasyDataAPI" : "1.*"

有了这个:

    "gridiron-guru/fantasy-data-api" : "1.*"

我看到你在库上提出了一个问题,你能用一个合并请求修复它吗?

尝试在 Packagist 上发布您的包,这样您就不再需要:

"repositories": [ {
        "type": "vcs",
        "url": "https://github.com/gridiron-guru/FantasyDataAPI"
}], 

这样你只需要在composer.json发布稳定版本后更改版本。

您的作曲家看起来像:

"require": {
    ...
    "gridiron-guru/FantasyDataAPI" : "dev-master" // or whatever branch
}

现在你只需要运行composer update --prefer-source.

另外,看看这个 link,在我尝试做类似的事情时帮助了我。

http://dimsav.com/blog/9/git-repository-inside-composer-vendors

The composer option --prefer-source is cloning the package's git repository >inside the vendor directory. To see your repository changes, or commit, simply >chdir to the package's root directory