正在更新Symfony2上的composer.phar



我有一个已经启动的Symfony2项目。我需要安装一个新的捆绑包,正如我所看到的,我需要在composer.json中添加一行新行,然后执行update命令。

问题是,我的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不存在,当然是正确的。所以我怀疑为什么这些文件在不同的文件夹中?以前的开发人员犯了错误吗?我应该把文件移到同一个文件夹吗?到bin还是httpdocs

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

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

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

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

composer抱怨缺少composer的解决方案。json:

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

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

cd /path/to/yourproject

在执行之前

/bin/composer.phar update ...

替代方案:

您可以使用--working dir选项为composer指定一个工作目录。通过这种方式,您可以从任何当前工作目录将composer指向您的项目(即使您的项目的路径与cwd所在的位置不同(。示例用法:

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

提示#1

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

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

然后您可以简单地(假设/bin在您的PATH中(。。。

composer <command>

提示#2

您可以使用pwd(*p*rint*w*工作*1d**目录(检查您当前的位置

pwd

最新更新