我的PHP项目包含一个基本应用程序和多个模块。每个模块都可以有一个需要不同库的composer文件。该应用程序拥有一些基础库(也通过作曲家加载)。现在我的问题。
该项目具有付款功能。每个模块都支持支付网关。我想在我的项目中使用omnipay(https://github.com/thephpleague/omnipay)。 Omnypay带有不同的网关,每个网关都可以通过像
这样的作曲家自己加载{
"require" : {
"omnipay/paypal": "*"
}
}
如果我在每个模块中放入一个带有omnipay要求的composer.json文件,那就意味着将完整的omnipay堆栈(common,guzzle,simfony)添加到每个支付网关模块中。现在我的问题是,在某种程度上可以在我的应用程序composer.json文件中使用类似
的文件{
"config" : {
"vendor-dir": "libraries/composer"
},
"require" : {
"mustache/mustache": "*",
"omnipay/common": "*"
}
}
然后在模块中有一种依赖?额外的存储库会有帮助吗?像我模块中的以下composer.json文件?
{
"config" : {
"vendor-dir": "libraries/composer"
},
"repositories": [
{
"type": "path",
"url": "../../application/libraries/composer"
}
],
"require" : {
"omnipay/paypal": "*"
}
}
我试过了,但我不知道这是否可行。另外,当我使用上面的composer.json文件时,我收到错误Repository type is not registered: path
。
我是作曲家的初学者,所以请原谅这是一个微不足道的问题。但我现在卡住了。