用其他fork替换框架中的composer包


Replace composer package in framework by other fork

我使用作曲家驱动的框架(Laravel 4)。它使用Carbon类进行日期时间操作。碳提供了完美的东西,但泄露了一些我需要的功能。所以,我已经分叉了它,编写了新功能,并在GitHub上的回购中推送了它。

问题是,在我的版本中,如何使composer从原始repo(框架的composer.json链接)中替换Carbon?

在root composer.json中,我添加了我的repo链接:

"repositories":[
    ...
    {
        "type":"git",
        "url":"https://github.com/terion-name/Carbon"
    }
],

此外,我尝试在"require"块中添加"nesbot/carbon":"*",我尝试添加

"replace" : {
  "nesbot/carbon": "self.version"
},

在我的Carbon composer.json版本中。什么都不管用。Composer安装了碳的原始版本,在我的回购中没有注意

Composer默认从packagist.org读取。

既然你已经在github上分叉了一个repo,你可以将这个分叉暴露给packagist,这样Composer就可以用同样的方式从中读取。

"repositories": [
    { "packagist": false },
    {
        "type": "composer",
        "url": "http://local/packages.json"
    }
]