如果其他模块需要,则在root composer文件中是否需要phpunit?

时间:2019-05-09 23:54:35

标签: composer-php phpunit

如果其他模块需要,则在root composer文件中是否需要phpunit?

某些依赖项需要phpunit,这是否意味着我还需要在root composer文件中使用phpunit才能使这些依赖项完全起作用?

1 个答案:

答案 0 :(得分:1)

简短的回答:不,通常您只需要添加要使用的依赖项。无论这些依赖项需要什么,它们都应该定义自己。

例如,您的项目需要库A和C。如果库A说需要库B,那么作曲家也将下载该库,而您不必关心它。当库B将库C和D定义为依赖项时,库B也将下载库D,并检查您和库B两者是否都需要可使用的库C版本或抛出错误,即您或库B是否需要更改库C和D。库C的版本要求。

如果库A和B在其dev-dependencies中具有phpunit,则作曲者将忽略它们,因为require-dev表示使用库不需要此依赖,仅用于开发。 Composer只会下载您的开发依赖项(除非您在产品服务器上也不需要开发依赖项,因为您只想运行项目,除非您在产品服务器上使用--no-dev)。

您应该只定义直接用作根依赖关系的依赖关系(所有依赖关系,即使您的依赖关系已经提供了这些依赖关系也是如此)。您使用的那些依赖关系会自行定义他们需要的内容并进行编写将为您解决所有这些要求,并确定要下载的内容和版本。

如果看到一个不知道为什么存在的库,也可以使用composer why <vendor/library-name>来找出为什么安装了该库。