“替换”属性如何与作曲家合作?

那么“replace”属性如何与composer配合使用?我已经看过作曲家的文件,但仍然不明白。搜索更多信息没有回答我的问题。

当我在github上查看Laravel/Framework上的composer.json文件。我看不到如何更换将工作。有人可以向我解释这是如何工作的?什么变量“self.version”将等于?

Composer文档提供了两个基本的例子。我会试着解释一下:

Lists packages that are replaced by this package. This allows you to fork a package, publish it under a different name with its own version numbers, while packages requiring the original package continue to work with your fork because it replaces the original package.

假设您的软件使用原始/库和其他/包,它本身也需要原始/库。

现在,您认为原始/图书馆需要集成功能,但维护者不会让您的建议在其包中发生。您决定将该库分成名称更好/库,并标记新版本。

回到你的软件当然,它应该开始使用更好的/库,所以你需要而不是,但那个其他/包仍然需要原始/库 – 代码重复!你如何使这个其他包使用你更好的/库而不是分割它,只改变composer.json(你仍然兼容到原始/库,所以它应该工作)?

你添加一个替换键到你的composer.json:

"replace": {
    "original/library":"1.*"
}

现在,Composer知道,在解决其他/包的依赖关系时,来自更好/库的任何包与原始/库一样好。

This is also useful for packages that contain sub-packages, for example the main symfony/symfony package contains all the Symfony Components which are also available as individual packages. If you require the main package it will automatically fulfill any requirement of one of the individual components, since it replaces them.

相同的规则,略有不同的角度:要求框架的组件是任何其他需要某些功能的组件的好方法。但是如果您需要在软件中使用完整的框架,而另一个库随后还需要该框架的组件,框架的替换声明允许Composer不必将该单个组件安装两次,因为它已经包含在全框架

http://stackoverflow.com/questions/18882201/how-does-the-replace-property-work-with-composer

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:“替换”属性如何与作曲家合作?