2014-10-01 171 views
2

我正在爲我的項目使用Laravel 5的beta版本。作曲家| laravel 5 - 更新依賴關係,但框架本身

我發現Laravel 5的應用程序框架在github倉庫中發生了變化,並且因爲它是一個開發版本,所以預計會頻繁更改。

我的問題是,我可以只更新使用作曲家而不是框架本身的特定依賴關係嗎?這樣我就不必擔心變化的應用程序結構,直到我準備好進行更改爲止。

這裏是composer.json依賴的樣子:

"require": { 
     "laravel/framework": "~5.0" 
    }, 
    "require-dev": { 
     "phpunit/phpunit": "~4.0", 
     "way/generators": "~3.0", 
     "fzaninotto/faker": "[email protected]" 
    }, 

謝謝。

+0

你可以刪除「require」-part來創建依賴關係的作曲家更新,但這很不方便。但是,這是可能的。不以任何方式推薦順便說一句。請注意,JSON不允許評論/評論。 – Sliq 2014-10-01 06:28:56

回答

1

雖然composer update package package ...答案是一個很好的工作,你也許能夠做的另一件事就是改變你的Laravel需要規範的具體承諾。 Composer documentation提到了如何做到這一點,而且我自己在一個項目上完成了它(儘管沒有laravel,在我自己的軟件包上也處於打破/ dev狀態)。

"require": { 
    "laravel/framework": "dev-master#49e3c77b518547bb661b1de4fda64a3ae0c5c505", 
    ... 
} 

我倒是希望,因爲laravel/framework「替代」的各種illuminate/*包,就這些依賴任何(只要該規範是5.0 -esque),這將無需下載的照射包加倍努力。

這樣做,你可以鎖定你的laravel/framework(或任何包)在給定的提交,但仍然允許標準composer update工作。

要找出提交你已經上,如果你的laravel/framework依賴規範是一個開發一個,則vendor/laravel/framework/目錄本身應該是個混帳回購協議,所以只是做git status在那裏得到了HEAD裁判。或者,請查看composer.lock中的laravel/framework條目的值source.reference值。

-1

你不可能真的。如果你使用Laravel 5這是你需要處理的事情,那麼開發版本會帶着這個反向繪圖。

2

Composer允許您執行特定的軟件包升級。我用了這個字面上的另一個晚上來升級一個包來修復一個bug,但我不想改變其他任何東西。

composer update <package1> <package2> <...>

所以你的情況

composer update phpunit/phpunit way/generators fzaninotto/faker

,當你有大量的包可能是更復雜 - 但它是一個可行的解決方案。

2

是的,你可以簡單地調用

composer update vendor/package 

,而無需更新整個項目。

它將爲自己拉包和依賴