如果其他模块需要它?
是否需要phpunit?某些依赖项需要phpunit,这是否意味着我还需要root Composer文件中的Phpunit才能完全工作?
简短答案:不,通常您只需要添加要使用的依赖项即可。无论这些依赖性需要什么,它们都应该定义自己。
例如,您的项目需要库a&C.如果图书馆A表示需要库B,则作曲家也将下载它,您不必关心它。当图书馆B定义库C&d作为依赖关系,它也将下载库D,并检查您和库B是否需要可以使用或丢弃错误的库C版本,您或库B需要更改库C的版本要求。
如果库A和B在其DEV依赖性中具有PHPUNIT,则作曲家将忽略这些phpunit,因为require-dev
表示不需要使用该库,而仅用于开发。作曲家只会下载您的DEV依赖性(除非您使用--no-dev
,例如在您的产品服务器上也不需要开发依赖性,因为您只想运行项目(。
您应该只定义您直接用作根依赖性的依赖项(即使您的依赖项已经提供了它们(。这些依赖关系,您使用的依赖项将为您解决所有这些要求,并确定要下载的内容和哪个版本。
如果您看到一个不知道为什么在那里的库,也可以使用 composer why <vendor/library-name>
来找出为什么安装了它。