2017-04-11 104 views
4

我遵循Laravel安裝指南中的所有步驟。Laravel的新手 - 供應商目錄

使用Composer,該項目已成功安裝在服務器上並像魅力一樣運行。

在安裝時,Composer在供應商目錄中添加一些依賴關係。

我的問題是:爲什麼「Hello World項目」有這麼多的依賴關係。我不明白目錄的需要。繼承人的名單:

  • classpreloader
  • 作曲家
  • d11wtq
  • 的filp
  • ircmaxell
  • jeremeamia
  • laravel
  • 獨白
  • nesbot
  • nikic
  • paragonie
  • 拼縫
  • phpseclib
  • predis
  • PSR
  • swiftmailer
  • 交響樂

我來自Zend開發。所以在供應商目錄中,我只期待Laravel框架,沒有別的。爲什麼我需要超過4200個第三方腳本文件。

感謝您的回答。

卡爾

+2

這些依賴關係是預先加載的,因爲框架假定大多數開發人員將使用Laravel而不是Hello World項目。你問這些軟件包是做什麼的? – WillardSolutions

+0

感謝您的快速回復。是的,但我想知道一個正常的MVC項目可以刪除哪個軟件包。我教Laravel會有所有那些沒有任何依賴第三方的類。 例如,我真的需要psr,swiftmailer。 爲什麼交響樂。我知道Laravel的靈感來源於它......但是爲什麼依賴於它... –

+0

@SequenceDigitale.com,看看'symfony /'目錄裏面。這可能不是整個框架,而是一些圖書館。 – Chris

回答

2

Laravel有許多功能外的開箱它缺少其他框架中。我可以理解你認爲像Hello World項目這樣簡單的東西有太多依賴關係,因爲你完全正確。但Laravel並不是要在需要時添加功能,而是要讓所有功能都已經存在。這就像比較Arch Linux和Ubuntu。在Arch中,當你需要時,你可以隨時隨地安裝東西。 Ubuntu擁有一切開箱即用的功能。

哪一個更好是主要的味道問題。

我在新的Laravel項目中運行composer show --tree以查看依賴關係樹。現在,從Laravel 5.4.18開始,有4個主要依賴關係牽扯所有其他依賴關係。

  1. laravel /框架
  2. laravel /修補匠
  3. fzaninotto /騙子
  4. 的PHPUnit/PHPUnit的

許多這些依賴關係的未在使用展開時,例如phpunit僅用於單元測試,或者使用Symfony調試欄 - 你猜對了 - 用於調試。

關於您關於刪除依賴關係的註釋:它們由4個主要依賴項之一引入,因此您必須將它們分叉並刪除未使用的組件或與之共存。