我按照Laravel安装指南中的所有步骤进行操作 .
使用Composer,项目在服务器上成功安装并像魅力一样运行 .
在安装时,Composer会在供应商目录中添加一些依赖项 .
我的问题是:为什么“Hello World项目”有很多依赖项 . 我不明白目录的需求 . 继承人名单:
-
bin
-
classpreloader
-
作曲家
-
d11wtq
-
filp
-
ircmaxell
-
jeremeamia
-
laravel
-
monolog
-
nesbot
-
nikic
-
paragonie
-
拼凑而成
-
phpseclib
-
predis
-
psr
-
堆栈
-
swiftmailer
-
交响乐
我来自Zend开发 . 所以在供应商目录中,我只期待Laravel框架,没有别的 . 为什么我需要超过4200个第三方脚本文件 .
谢谢回答 .
卡尔
1 回答
Laravel具有许多开箱即用的功能,在其他框架中缺少这些功能 . 我可以理解你认为对于像Hello World项目那样简单的东西有太多的依赖关系,因为你是完全正确的 . 但Laravel不是在你需要时添加功能,而是在于已经拥有所有功能 . 这就像比较Arch Linux和Ubuntu . 在Arch中,您可以根据需要随时随地安装 . Ubuntu拥有一切开箱即用的功能 .
哪个更好是主要是品味问题 .
我在一个新的Laravel项目中运行
composer show --tree
来查看依赖树 . 现在,从Laravel 5.4.18开始,有4个主要依赖项引入所有其他依赖项 .laravel / framework
laravel / tinker
fzaninotto / faker
phpunit / phpunit
许多这些依赖项在部署时未使用,例如phpunit仅用于单元测试,或者使用Symfony调试条 - 嗯,你猜对了 - 用于调试 .
关于你关于删除依赖关系的评论:它们是由4个主要依赖项之一引入的,因此你必须分叉它们并删除未使用的组件或使用它 .