我已经启动了一个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文件在不同的文件夹中?以前的开发人员犯了错误吗?我应该将文件移动到同一个文件夹吗?要bin
或httpdocs
?
答案 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