30% 的 Laravel 代码是由 Symfony 构成的

翻译 Summer ⋅ 于 3个月前 ⋅ 最后回复由 xhh110 1个月前 ⋅ 1836 阅读 ⋅ 原文地址
这是一篇社区协同翻译的文章,已完成翻译,更多信息请点击 协同翻译介绍

Laravel 很适合用来开发业务逻辑复杂的大型 Web 应用。我们知道Laravel 使用了大量的第三方扩展包,其中很大一部分就是 Symfony Components 。我为第三方包在 Laravel 中的使用比例非常好奇,所以就有了这篇文章。

创建项目

我们先按照 Laravel 文档中推荐的命令来创建一个新的 Laravel:

composer create-project --prefer-dist laravel/laravel my-project

安装成功后,可以看到 vendor/ 文件夹里的内容:

file

新安装的 Laravel 项目默认情况下 vendor/ 文件夹

Summer 翻译于 3个月前

分析 vendor/ 目录

我用了知名的 cloc 命令行实用程序去统计每个 vendor 目录下每个文件目录的行数. 下面是用 cloc  来统计 vendor/laravel/  目录的输出结果:

$ cloc vendor/laravel/
907 text files.
901 unique files.
 67 files ignored.
T=6.57 s (127.8 files/s, 17502.6 lines/s)
......................................................................
Language   files   blank   comment    code
......................................................................
PHP          801   14423     49490   49404
JSON          30       0         0    1286
CSS            1      47        11     229
Javascript     6      19        45      38
SASS           2      11        11      25
......................................................................
SUM:         840   14500     49557   50982
......................................................................

在此次分析中,我们仅关注于 PHP 代码,所以忽略不是 PHP 的文件和空白注释的行数。 Laravel的应用中包含自己的 PHP 代码一共 49,404 行.这些结果也实用于其他主要的 vendors:

file

鉴于上面的统计,我们可以得出以下结论:

  • Laravel 应用默认包含 373,345 行 PHP 代码.
  • 在 Laravel 应用中, 13% 的代码来源于 Laravel (49,404 行) 和 87% 第三方的 vendors (323,941 行).
  • 在 Laravel 应用中最大的单一包是 fzaninotto/, 它提供了用来在测试中生成逼真的数据.
  • 在 Laravel 应用中, 超过 29% 来源于 Symfony(108,407 行代码 = 81,688 来源于 symfony/ 和 26,719 来源于 swiftmailer/, swiftmailer是 symfony 的官方邮件 ).
sane 翻译于 3个月前

查看其他 1 个版本

结论

这些统计数据显示了为什么 PHP 在这些年来一直保持长盛不衰. 当其它社区与 NIH (Not Invented Here) 综合征 斗争并将其资源投入到重新发明轮子中时, PHP 日益逐渐地遵循 PFE (Proudly Found Elsewhere) 哲学. Composer 和高质量的开源项目是这个现象的主要驱动因素, 所以不要忘了感谢他们的工作!

竞争项目 (例如 Laravel 和 Symfony) 之间的这种合作为开发人员带来了许多好处, 包括更温和的学习曲线和和更紧密的生态系统. 另外,battle-testing 对许多不同项目的同一个库进行测试为各种商业应用做好准备. 这就是为什么 Symfony 组件 被大多数PHP项目所使用 并且拥有 超过10亿次的下载.

GhostCoder 翻译于 3个月前

查看其他 4 个版本

原文地址:https://medium.com/@javiereguiluz/30-of-...

译文地址:https://laravel-china.org/topics/7462/30...


本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

本帖已被设为精华帖!
回复数量: 10
  • 梦康
    3个月前

    对的,一开始感到很奇怪,觉得"诶嘿,这框架里面怎么还有别的框架的东西"

  • wujunze talk is cheap show me the code 1
    3个月前

    站在巨人的肩膀上 才会看的更远

  • Kurisu
    3个月前

    同一个图书馆进行战斗测试 ...............

  • wangwenli
    3个月前

    增删改查代码

  • wangwenli
    3个月前

    下午跟老公吵架,然后各回各家各找各妈。 结果我回去被我妈骂了一顿,赶了出来。 他被他爸踢了几脚,关在了门外。 结果我俩没等到晚上,就和好了!
    老婆:我患病卧床,你却到外面喝酒,还说是替我着想,我真不明白,你哪里有替我着想。 老公辩解说:这有什么不明白的,你有病卧床,我如果把人家约到家里来喝,你肯定很烦;我躲开你到外面去喝,还不是替你着想?

  • mingyun
    3个月前
  • boxcore
    3个月前

    Symfony才是大厂!

  • Summer MOD A Life-long learner.
    1个月前

    @carlclone 我可没机译

  • Summer MOD A Life-long learner.
    1个月前

    @carlclone 翻译是门技术活,要给大家点信心,会慢慢提高的

  • xhh110 多少殷勤全白付,当年戏语误青丝。
    1个月前

    cloc 好工具。。。。

暂无评论~~

  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!