2013-08-30 50 views
1

負載和供應商的依賴我最近分叉robmorgan/phinx項目,並在我的項目使用叉形版本修改了composer.json文件:與composer.json

{ 
    "name": "...", 
    "description": "...", 

    "repositories": [ 
     { 
      "type": "package", 
      "package": { 
       "name": "lube8uy/phinx", 
     "version": "master", 
       "source": { 
        "url": "https://github.com/lube8uy/phinx.git", 
        "type": "git", 
        "reference": "master" 
       } 
      } 
     } 
    ], 
    "require": { 
    "php": ">=5.3.0", 
     "lube8uy/phinx": "dev-master" 
    } 
} 

第一個問題:其他供應商

現在,當我在我的項目中加載composer.json文件時,我正確地獲得了這個分叉版本。 我不知道的是如何從phinx項目本身加載的依賴: https://github.com/lube8uy/phinx/blob/master/composer.json

如果我使用原來的源packagist一切工作正常,我得到了所有的依賴關係,但現在,我用我自己的倉庫我無法得到它們。

第二個問題:更新

我怎麼能收到我給我的github源所做的修改? 我做了一些修改,推送他們到正確的分支,然後我運行作曲家更新,但沒有更新......我做錯了什麼?

非常感謝您

+0

是作曲家顯示任何錯誤消息,或者它只是忽略的分叉版本的依賴? Composer通常獲取每個可用的'composer.json',然後決定要安裝的給定包的哪個版本。 – thormeier

+0

嗨,它只是無視它。在作曲家下載後,它只下載lube8uy回購中的東西。 – Lucia

+0

+1,有趣而有用的問題! – Sliq

回答

3

關於第一個問題:

嘗試要求它爲VCS庫(版本控制系統,看到composer doc on vcs repositories),如下所示:

{ 
    "name": "...", 
    "description": "...", 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "https://github.com/lube8uy/phinx" 
     } 
    ], 
    "require": { 
     "php": ">=5.3.0", 
     "robmorgan/phinx": "dev-master" 
    } 
} 

它現在需要包裝robmorgan/phinx,這是https://github.com/lube8uy/phinx這是所需的叉。它仍然有原始名稱robmorgan/phinx,但發現在不同的位置。

由於包裝名稱在composer.json中,因此它仍然具有相同的名稱。如果要將名稱更改爲lube8ye/phinx,請將其更改爲叉中的composer.json

關於第二個問題:

在您通過作曲家需要一個包做出的更改應當您在項目執行php composer.phar update自動更新。如果這不起作用,試圖迫使作曲家需要在你的require部分dev-master後加入提交哈希具體承諾,像這樣:

"require": { 
     "robmorgan/phinx": "dev-master#1234abcd" 
    } 

在該處1234abcd是所需提交的哈希值。

另外:嘗試通過刪除文件夾的內容,以避免加載緩存版本清除作曲家的緩存(見composer doc on COMPOSER_CACHE_DIR

+2

非常感謝!它解決了我的問題。 – Lucia