2017-04-11 54 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个主要依赖项之一引入,因此您必须将它们分叉并删除未使用的组件或与之共存。