如何使用Composer安装Symfony2 Bundles

时间:2013-03-05 14:09:13

标签: symfony composer-php doctrine-migrations

我正在使用Windows,我从其Windows安装程序安装了composer。我想要做的是将DoctrineMigrationsBundle安装到我的项目中,所以我添加了

"doctrine/doctrine-migrations-bundle": "dev-master"

到项目中的composer.json文件并运行

cd the project directory
php composer.phar update

但我得到的是:无法打开输入文件:composer.phar

我的整个composer.json文件是

{
    "name": "symfony/framework-standard-edition",
    "description": "The \"Symfony Standard Edition\" distribution",
    "autoload": {
        "psr-0": { "": "src/" }
    },
    "require": {
        "php": ">=5.3.3",
        "symfony/symfony": "2.1.*",
        "doctrine/orm": ">=2.2.3,<2.4-dev",
        "doctrine/doctrine-bundle": "1.1.*",
        "twig/extensions": "1.0.*@dev",
        "symfony/assetic-bundle": "2.1.*",
        "symfony/swiftmailer-bundle": "2.1.*",
        "symfony/monolog-bundle": "2.1.*",
        "sensio/distribution-bundle": "2.1.*",
        "sensio/framework-extra-bundle": "2.1.*",
        "sensio/generator-bundle": "2.1.*",
        "jms/security-extra-bundle": "1.2.*",
        "jms/di-extra-bundle": "1.1.*",
        "kriswallsmith/assetic": "1.1.*@dev"
        "doctrine/doctrine-migrations-bundle": "dev-master"
    },
    "scripts": {
        "post-install-cmd": [
            "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": [
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
        ]
    },
    "extra": {
        "symfony-app-dir": "app",
        "symfony-web-dir": "web"
    }
}

你能帮我解决这个问题吗?

5 个答案:

答案 0 :(得分:6)

正如@AhmedSiouani所说,错误告诉您他们找不到composer.phar文件。

你可以做的一些事情:

  1. 下载Composer-SetUp.exe并按照the downloads page上的说明安装Composer(滚动到“Windows Installer”);
  2. 下载composer.phar文件并将其放入您的项目中(不推荐);
  3. 下载composer.phar文件并将其放在PATH环境变量 1 ;
  4. 中的目录中
  5. 下载composer.phar文件并创建一个执行composer.bat文件的composer.phar文件。将下面的代码放入其中并将其保存在PATH环境变量 1 中的目录中。

    @echo off
    php "path\to\composer.phar" %*
    

  6. 1 :您可以查看PATH环境变量中的哪些目录 在你的cmd中运行echo %PATH% 您还可以将此文件所在的目录放在PATH环境中。为此,请转到 Computer(右键单击)&gt; Settings&gt; Advanced Settings&gt; Environments Variables(在“高级”选项卡下)并使用您的目录路径设置PATH变量(或通过在路径之间添加;来添加当前PATH变量的路径)。

答案 1 :(得分:2)

错误消息足够清晰,与您的composer.json文件无关。

我认为您只需要将composer.phar文件移动到项目目录中。

此外,一个可重复使用的解决方案是通过PATH环境变量调用它。

答案 2 :(得分:1)

我遇到同样的问题“无法打开输入文件:composer.phar”

修复:转到项目目录并运行以下命令

php -r "readfile('https://getcomposer.org/installer');" | php

并运行

php composer.phar install or php composer.phar update

这会很棒。

答案 3 :(得分:0)

我在fedora 17上工作我在控制台上运行它来下载 composer.phar

$ curl -s https://getcomposer.org/installer | php

然后它现在正在工作。

答案 4 :(得分:0)

确保您的代码:

 "kriswallsmith/assetic": "1.1.*@dev"
 "doctrine/doctrine-migrations-bundle": "dev-master"

更改为:

"kriswallsmith/assetic": "1.1.*@dev",
 "doctrine/doctrine-migrations-bundle": "dev-master"

注意添加一个,(逗号)。