2

我有一个已经开始的 Symfony2 项目。我需要安装一个新包,正如我所见,我需要在我的 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 不存在并且当然是正确的。所以我怀疑为什么这些文件在不同的文件夹中?以前的开发者犯错了吗?我应该将文件移动到同一个文件夹吗?到binhttpdocs

4

2 回答 2

3

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

/bin/composer.phar update doctrine/mongodb-odm-bundle
于 2013-05-21T10:43:53.793 回答
1

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

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

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

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

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

cd /path/to/yourproject

... 执行前

/bin/composer.phar update ...

选择:

您可以使用--working-dir选项为作曲家指定工作目录。这样,您可以从任何当前工作目录将 composer 指向您的项目(即使您的项目路径与您的 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
于 2013-05-21T15:38:24.033 回答