我有一台Vagrant机器,具有要在其上运行服务器的实际PHP版本,但是在本地使用的是较新版本的PHP.
与通过SSH在虚拟机上进行更新相比,在本地更新Composer可以节省大量时间.
所以我的问题是:从不同版本的PHP调用composer安装或更新时,这会影响供应商文件吗?
解决方法:
更新依赖项时使用的PHP版本会影响所使用的软件包.软件包可以定义特定PHP版本上的要求.
常见的要求是,当一个软件包使用上述版本的功能时,要求使用PHP 5.4或5.5;或者,由于该软件包需要某些错误修复,因此需要PHP 5.3.3或PHP 5.3.27.
如果运行此命令时使用的PHP版本不能满足锁定文件中提到的所有PHP版本要求,则Composer将抱怨无法执行composer安装.
在大多数情况下,可以使用比composer安装更旧的PHP版本运行composer更新.但是,建议使用相同的PHP版本.
另外:还需要在所有PHP版本中使用相同的必需扩展名,以进行需求检查.
请注意,即使运行Composer命令的命令行PHP无法满足要求,但仍要求Composer假定目标平台上存在给定的PHP版本或扩展,但是尚未实现此功能.因此,无法用目标环境中存在的PHP版本覆盖本地PHP版本.