Composer - 是否可以使用一个命令在"require-dev"中全局安装软件包?

TiE*_*Eul 2 php continuous-integration jenkins continuous-delivery composer-php

快速提问,如果对我的想法有任何愚蠢/如果有更好的方法,请告诉我:

为了创建Continuous Delivery管道,我想在Composer中使用"require-dev"声明各种类型测试所需的一些包.但是,我想知道是否有可能以一种方式运行install命令,它将使用一个命令全局安装"require-dev"下列出的所有软件包?

这将是很好的,因为它可以让我轻松地保持测试环境的最新状态,并允许全局访问我需要的所有PHP测试解决方案.我知道这不是很多工作,如果我只是手动完成所有工作,我已经完成了它,但我很想知道是否有一种很好的方法可以做到这一点,因为我认为手动下载和一切,赋予它执行权限然后将其移动到bin /目录以进行全局访问是一种繁琐的解决方案.

Ali*_*Ali 8

根据作曲家的帮助,使用global关键字和composer允许在全局作曲家dir($ COMPOSER_HOME)中运行命令.

这意味着当您运行时composer global require phpunit/phpunit,composer将更新其全局目录,而不是您当时所在的目录.

所以在我的情况下,$ COMPOSER_HOME在我的主目录/Home/.composer中,运行上面的命令会;

  1. 更新/Home/.composer/composer.json文件.
  2. 将最新的phpunit软件包下载到/Home/.composer/vender
  3. 将符号链接添加到phpunit可执行文件到/Home/.composer/vendor/bin目录中

所以在这一点上,如果我的路径中包含bin文件夹,我将能够在我的系统中运行phpunit,无论我在哪个目录中运行命令.

现在,如果您希望将依赖项作为开发需求的一部分进行安装,那么您需要做的就是将--dev参数添加到安装(或更新)命令中,例如composer global require phpunit/phpunit --dev