在Symfony2上更新composer.phar

时间:2013-05-21 10:36:42

标签: symfony composer-php

我已经启动了一个Symfony2项目。我需要安装一个new bundle,因为我看到我需要在我的composer.json中添加一个新行,然后执行更新命令。

问题是,我的composer.phar文件和.json位于不同的文件夹中。

/httpdocs/composer.json
/bin/composer.phar

所以在我将此行添加到.json文件之后:

"doctrine/mongodb-odm-bundle": "3.0.*@dev"

如果那时我尝试/bin/php composer.phar update doctrine/mongodb-odm-bundle我得到一个错误,说composer.json不在那里,当然是正确的。所以我怀疑为什么thoose文件在不同的文件夹中?以前的开发人员犯了错误吗?我应该将文件移动到同一个文件夹吗?要binhttpdocs

2 个答案:

答案 0 :(得分:3)

composer.phar生活在哪里并不重要。相关部分,您的当前工作目录位于symfony项目中(composer.json所在的位置)。然后简单的执行composer(如果设置了执行位,则不需要调用php)。

/bin/composer.phar update doctrine/mongodb-odm-bundle

答案 1 :(得分:1)

您可以拥有全局 composer.phar并仅使用此一个。这就是你通常在拥有多个作曲家项目的开发机器上拥有它的方法。

有些人倾向于将composer.phar放入他们的项目中,以便他们可以将它与应用程序一起部署。

作曲家抱怨缺少composer.json的解决方案:

您必须将工作目录更改为您要使用的 composer.json 所在的路径。 (每个作曲家项目都有自己的composer.json)

这意味着cd进入你的项目目录......

cd /path/to/yourproject

......执行前

/bin/composer.phar update ...

<强>替代:

您可以使用 - working-dir 选项为作曲家指定工作目录。 这样,您可以将编辑器从任何当前工作目录指向您的项目(即使您的项目路径与您的cwd不同)。示例用法:

composer --working-dir=/path/to/yourproject <command>

提示#1

将/bin/composer.phar重命名为/ bin / composer

mv /bin/composer.phar /bin/composer
chmod +x /bin/composer

然后你可以简单地(假设/ bin在你的PATH中)......

composer <command>

提示#2

您可以使用pwd检查当前的位置(* p * rint * w * orking * d * irectory)

pwd