2015年最佳PHP框架:SitePoint调查结果

One month ago, we started the annual SitePoint framework popularity survey. Now that the month has expired, it’s time to look at the results and to distribute the prizes. The response was a whopping ~7800 entries, far more than any other survey we’ve held so far, and even after filtering out invalid entries we end up with a formidable number of valid participants.

一个月前, 我们开始了年度SitePoint框架受欢迎程度调查。 现在该月已经到期,是时候查看结果并分发奖品了。 反馈的结果是多达7800个条目,远远超过了我们迄今为止进行的其他任何调查,即使在过滤掉无效条目之后,我们最终还是得到了大量有效参与者。

First things first, as promised, here is the entire result set for your perusal and use: download. Do with it as you please. If you come up with some interesting graphs, please do share them with us! Read the “Data” paragraph below for some more details on the downloadable files.

首先,如您所愿,这是供您细读和使用的整个结果集: 下载 。 随心所欲地处理它。 如果您想出一些有趣的图表,请与我们分享! 阅读下面的“数据”段落,以获取有关可下载文件的更多详细信息。

2015年最受欢迎的框架 (The Most Popular Framework of 2015)

框架优胜者 (Framework Winner)

To view the full screen versions of all plots below, just click on them. They open in new tabs.

要查看下面所有图的全屏版本,只需单击它们。 它们在新标签页中打开。

As expected, Laravel won by a large margin once again.

不出所料,Laravel再次大获全胜。

Interactive version:

互动版:

2015年最佳PHP框架:SitePoint调查结果

Interactive version:

互动版:

2015年最佳PHP框架:SitePoint调查结果

Some people were worried that splitting the versions for some frameworks but sparing Laravel may influence the results and give it an unfair advantage, but as we can see, Laravel wins even if you merge all other framework versions.

有人担心为某些框架拆分版本但保留Laravel可能会影响结果并给它带来不公平的优势,但是正如我们所看到的,即使您合并所有其他框架版本,Laravel也会获胜。

The data below will be presented in tabular form, simply because I didn’t have time to make pretty graphs yet and a lot of you were very impatient to hear the results. I’ll update the graphics soon.

下面的数据将以表格形式显示,仅仅是因为我还没有时间制作漂亮的图形,并且你们中的很多人都非常急于听到结果。 我将尽快更新图形。

框架国家优胜者 (Framework Winner by Country)

If we look at all the countries with more than 50 votes, these are their favorites:

如果我们查看票数超过50的所有国家/地区,这些是他们的最爱:

Country Total Votes Work Favorite Votes Personal Favorite Votes
United States 819 Laravel 219 Laravel 293
Czech Republic 770 Nette 611 Nette 639
United Kingdom 496 Laravel 138 Laravel 166
Germany 428 Symfony2 76 Laravel 100
France 343 Symfony2 149 Symfony2 136
Brazil 305 Laravel 100 Laravel 111
India 287 Laravel 62 Laravel 77
Ukraine 263 PHPixie 66 PHPixie 67
Indonesia 242 CodeIgniter 77 Laravel 64
Russian Federation 235 Yii 2 53 Yii 2 72
Poland 216 Symfony2 52 Symfony2 46
Netherlands 209 Laravel 64 Laravel 84
Romania 183 Symfony2 49 Symfony2 48
Canada 138 Laravel 40 Laravel 52
Spain 131 Symfony2 47 Symfony2 43
Vietnam 112 Laravel 34 Laravel 43
Iran 101 Laravel 34 Laravel 35
Italy 100 Laravel 20 Laravel 25
Australia 99 Laravel 30 Laravel 39
Slovakia 94 Nette 48 Nette 47
Belgium 79 Laravel 26 Laravel 31
Serbia 78 Laravel 20 Laravel 29
Hungary 73 Laravel 17 Laravel 19
Turkey 71 Laravel 26 Laravel 28
Mexico 68 Laravel 22 Laravel 21
Bulgaria 66 Laravel 13 Laravel 20
Lithuania 65 Symfony2 22 Laravel 26
Thailand 58 CodeIgniter 14 Laravel 16
Pakistan 57 CodeIgniter 14 CodeIgniter 13
Philippines 54 Laravel 15 Laravel 16
Argentina 52 Laravel 16 Laravel 21
Bangladesh 51 Laravel 18 Laravel 16
Belarus 51 Symfony2 20 Symfony2 19
Portugal 50 Laravel 12 Laravel 17
国家 投票总数 最喜欢的工作 投票数 个人收藏 投票数
美国 819 Laravel 219 Laravel 293
捷克* 770 内特 611 内特 639
英国 496 Laravel 138 Laravel 166
德国 428 Symfony2 76 Laravel 100
法国 343 Symfony2 149 Symfony2 136
巴西 305 Laravel 100 Laravel 111
印度 287 Laravel 62 Laravel 77
乌克兰 263 PHPixie 66 PHPixie 67
印度尼西亚 242 CodeIgniter 77 Laravel 64
俄罗斯联邦 235 Yii 2 53 Yii 2 72
波兰 216 Symfony2 52 Symfony2 46
荷兰 209 Laravel 64 Laravel 84
罗马尼亚 183 Symfony2 49 Symfony2 48
加拿大 138 Laravel 40 Laravel 52
西班牙 131 Symfony2 47 Symfony2 43
越南 112 Laravel 34 Laravel 43
伊朗 101 Laravel 34 Laravel 35
意大利 100 Laravel 20 Laravel 25
澳大利亚 99 Laravel 30 Laravel 39
斯洛伐克 94 内特 48 内特 47
比利时 79 Laravel 26 Laravel 31
塞尔维亚 78 Laravel 20 Laravel 29
匈牙利 73 Laravel 17 Laravel 19
火鸡 71 Laravel 26 Laravel 28
墨西哥 68 Laravel 22 Laravel 21
保加利亚 66 Laravel 13 Laravel 20
立陶宛 65 Symfony2 22 Laravel 26
泰国 58 CodeIgniter 14 Laravel 16
巴基斯坦 57 CodeIgniter 14 CodeIgniter 13
菲律宾 54 Laravel 15 Laravel 16
阿根廷 52 Laravel 16 Laravel 21
孟加拉国 51 Laravel 18 Laravel 16
白俄罗斯 51 Symfony2 20 Symfony2 19
葡萄牙 50 Laravel 12 Laravel 17

It’s an interesting trend to observe. Most English speaking countries favor Laravel, while France is loyal to Symfony – it’s own product. Interestingly, an incredibly large percentage of Czechs (the second most active country in the survey!) favor Nette – a framework largely unknown in the western world, while Ukraine has its own local favorite – PHPixie. It gets even more interesting when you look at the top five for each country – not just the winner – but I’ll leave that up to you to explore!

这是一个有趣的趋势。 大多数说英语的国家都喜欢Laravel,而法国忠实于Symfony(它是自己的产品)。 有趣的是,非常多的捷克人(调查中第二活跃的国家!)支持Nette(在西方世界中鲜为人知的框架),而乌克兰有自己的本地偏爱PHPixie。 当您查看每个国家/地区的前五名(不仅是获胜者)时,它会变得更加有趣,但我将由您自己来探索!

年龄段框架 (Framework by Age Group)

Finally, if we take a look at the top 5 frameworks of each age group, we get this:

最后,如果我们看一下每个年龄段的前5个框架,就会得到:

Group: Under 18 Votes: 131
Work Favorites Votes Personal Favorites Votes
PHPixie 73 PHPixie 73
Laravel 24 Laravel 27
Nette 8 Nette 9
No Framework 6 No Framework 5
CodeIgniter 4 Symfony2 4
组:18岁以下 投票数:131
工作收藏夹 投票数 个人收藏夹 投票数
PHPixie 73 PHPixie 73
Laravel 24 Laravel 27
内特 8 内特 9
没有框架 6 没有框架 5
CodeIgniter 4 Symfony2 4
Group: 18 – 25 Votes: 2433
Work Favorites Votes Personal Favorites Votes
Laravel 604 Laravel 720
Nette 329 Nette 338
PHPixie 259 PHPixie 259
Symfony2 258 Symfony2 255
CodeIgniter 178 Yii 2 194
组:18 – 25 投票数:2433
工作收藏夹 投票数 个人收藏夹 投票数
Laravel 604 Laravel 720
内特 329 内特 338
PHPixie 259 PHPixie 259
Symfony2 258 Symfony2 255
CodeIgniter 178 Yii 2 194
Group: 26 – 35 Votes: 3870
Work Favorites Votes Personal Favorites Votes
Laravel 788 Laravel 1049
Symfony2 636 Symfony2 597
CodeIgniter 292 Yii 2 323
Nette 285 Nette 303
Yii 2 258 CodeIgniter 235
组:26 – 35 投票:3870
工作收藏夹 投票数 个人收藏夹 投票数
Laravel 788 Laravel 1049
Symfony2 636 Symfony2 597
CodeIgniter 292 Yii 2 323
内特 285 内特 303
Yii 2 258 CodeIgniter 235
Group: 36 – 45 Votes: 1044
Work Favorites Votes Personal Favorites Votes
Laravel 191 Laravel 249
Symfony2 146 Symfony2 134
CodeIgniter 91 Yii 2 79
Zend Framework 2 77 Zend Framework 2 71
Company Internal Framework 73 CodeIgniter 68
组:36 – 45 投票数:1044
工作收藏夹 投票数 个人收藏夹 投票数
Laravel 191 Laravel 249
Symfony2 146 Symfony2 134
CodeIgniter 91 Yii 2 79
Zend Framework 2 77 Zend Framework 2 71
公司内部架构 73 CodeIgniter 68
Group: 45+ Votes: 252
Work Favorites Votes Personal Favorites Votes
Laravel 52 Laravel 66
CodeIgniter 31 No Framework 29
Symfony2 23 CodeIgniter 27
No Framework 21 Yii 2 22
Yii 2 19 Zend Framework 2 14
组:45+ 投票数:252
工作收藏夹 投票数 个人收藏夹 投票数
Laravel 52 Laravel 66
CodeIgniter 31 没有框架 29
Symfony2 23 CodeIgniter 27
没有框架 21 Yii 2 22
Yii 2 19 Zend Framework 2 14

Laravel, again, taking the lead in all, with Symfony usually following closely, except in the curious case of the underaged group – did PHPixie get introduced in a school and get points there? Worth looking into. Nothing really unexpected in these – except that only the youngest and oldest group seem to be “keeping it real” with “No Framework”. It’s also apparent that CodeIgniter, even in its current state, still maintains a very strong legacy and a loyal userbase.

Laravel再一次领头羊,Symfony通常紧随其后,但在未成年群体的奇怪情况下– PHPixie是否被学校引进并在那里获得积分? 值得一看。 这些中没有什么是真正令人意外的-除了只有最年轻和最老的组似乎在“无框架”的情况下“保持真实”。 同样显而易见的是,即使在当前状态下,CodeIgniter仍然保持着非常强大的遗产和忠实的用户群。

Interestingly, Phalcon’s popularity dropped drastically when compared to last year – it effectively dropped off the charts – but that’s also likely due to the much bigger sample size this year.

有趣的是,与去年相比, Phalcon的知名度急剧下降–实际上跌落了排行榜–但这也可能是由于今年的样本量更大。

Unfortunately, due to some complaints from last year, we didn’t include gender data in this survey. It would have been an interesting vector.

不幸的是,由于去年有一些投诉,我们没有在此调查中包括性别数据。 这将是一个有趣的载体。

成功 (On Success)

What follows is my opinion on why Laravel won again, read ahead if you’re interested in my take on things.

接下来是我对Laravel为什么再次获胜的看法,如果您对我的看法感兴趣,请继续阅读。

To the framework maintainers / owners out there. If you want to make it big – Laravel kind of big – recognize what Taylor has been doing. It’s not enough to just have good code. In fact, looking deeper into more than one framework can really disappoint a person, code-quality-wise. Just the other day, I was asked about Cake vs CodeIgniter and, having looked at CI’s source, got some serious 2008-level PTSD. The key to succeeding is, actually, advertising – as sad as that truth may be.

给那里的框架维护者/所有者。 如果您想扩大规模-Laravel有点大-请认出Taylor在做什么。 这不够的,仅仅有良好的代码。 实际上,深入研究多个框架确实会使人失望,从代码质量的角度来说。 就在前几天,有人我关于Cake vs CodeIgniter的问题,在查看了CI的消息来源后,我得到了一些严肃的2008年级别PTSD。 成功的关键实际上是广告-真可悲。

2015年最佳PHP框架:SitePoint调查结果

Taylor not only made sure Laravel has near perfect documentation, he also built (directly or indirectly) several other commercial services and partnerships around it. Laracasts covers all the missing docs and use cases, Forge and Envoyer are tuned for Laravel, and he frequently communicates with various bloggers about upcoming features and releases before they’re ready, so that they get maximum exposure on release time. The framework has its own subreddit, Packalyst is like Packagist but just for Laravel (!?), and there’s also Larajobs.com, which is borderline ridiculous. Laravel even has its own t-shirts (though the design leaves something to be desired). This may sound like typical marketing gobbledygook to you, but it works – social engineering is real, and to commercially succeed with your brand, you need to embrace it for what it really is – a brand.

泰勒不仅确保Laravel具有近乎完美的文档,还(直接或间接)建立了其他一些商业服务和与其相关的合作伙伴关系。 Laracasts涵盖了所有缺少的文档和用例,Forge和Envoyer为Laravel进行了调整,并且他经常与各种博主就即将推出的功能和发行版进行交流,以使它们在发布之前得到最大的利用。 该框架有其自己的子目录,Packalyst像Packagist一样,但仅适用于Laravel(!?),还有Larajobs.com,这简直是荒谬的。 Laravel甚至有自己的T恤(尽管设计有些不足)。 对于您来说,这听起来像是典型的营销骗子,但它确实有效–社会工程是真实的,要使您的品牌在商业上取得成功,您需要真正接受它- 品牌

If you’re serious about making money off of your open source work, don’t be afraid to invest in these matters. For example, get a good logo. Don’t trust your design abilities, you’re just not good. If you were, you’d have been a designer, not a PHP dev. Paying a couple hundred bucks for a good one will pay off in the long run. Don’t get your friend/daughter/partner to design it for you, else you may end up with something like this:

如果您真的想从开源工作中赚钱,请不要担心在这些方面进行投资。 例如,获得一个好的徽标。 不要相信自己的设计能力,那只是不好 。 如果您是,那么您将是设计师,而不是PHP开发人员。 从长远来看,付几百美元就能买到一个好东西。 不要让您的朋友/女儿/伙伴为您设计它,否则您可能最终会得到如下结果:

2015年最佳PHP框架:SitePoint调查结果

Don’t publish documentation or website copy text without having someone disconnected look at it first – proper English is incredibly important for first impressions. Don’t be afraid to approach potential developer evangelists – try to get people to believe in your product by asking them what they dislike. Shape your product around other people’s desires and opinions, don’t swim hardheadedly against the current, and don’t let your ego feel insulted because someone suggested a solution that, when looked at objectively, could just be better than yours. Get a developer evangelist to write tutorials and other technical pieces about your framework – in time, the relationship may just grow into a Laravel->Laracasts mutually lucrative one. Don’t release half-baked products, and don’t do alphas and betas publicly. There’s no need to have public announcements about those – announce an RC or two, and release. Exposing people to an imperfect product too early does more harm than good. When was the last time Laravel had a beta release?

正确的英语是第一印象非常重要 -不要无需断开有人看它第一次发布文档或网站复制文本。 不要害怕与潜在的开发人员联系—尝试通过询问人们不喜欢的东西,使人们相信您的产品。 围绕他人的需求和观点来塑造您的产品,不要硬着头皮面对潮流,也不要让您的自我受到侮辱,因为有人提出了一种解决方案,客观地看,它可能比您的要好。 请一名开发人员来撰写有关您的框架的教程和其他技术文章-随着时间的流逝,这种关系可能会发展成Laravel-> Laracasts互惠互利的关系。 不要发布半熟产品,也不要公开发布Alpha和Beta版本。 无需公开发布这些信息,只需发布​​一两个RC,然后发布即可。 过早地使人接触不完美的产品弊大于利。 Laravel上次发布Beta版本是什么时候?

Look, I’ll be the first one to admit that Laravel is good. It really is, and I use it for some of my projects purely due to simplicity – one command and you’re good to go? Sold! I don’t even care about the underlying bloat of hardcore framework components that power it – it’s so simple to use, I can easily spend that time on optimization later on if I ever end up needing it – I’ll just rewrite part of the framework in Zephir if performance becomes THAT important (spoiler alert: it won’t). But I’m also bothered by this looming monopoly and the frankly astounding incompetence of other framework communities. Locking yourselves into your isolated environments is not good community management. Having a forum is not enough – interacting with other forums is better. Spread the word, analyze solutions from other people, discuss them. Be open, be transparent. Have an official blog, get a * tag, justify your decisions, get in touch with popular publications which can help promote your framework if you present it well enough.

看,我将是第一个承认Laravel很好的人。 的确如此,我纯粹出于简单性而将它用于我的某些项目–一个命令,您准备好了吗? 卖了! 我什至都不在乎为其提供支持的硬核框架组件的潜在膨胀-它是如此简单,如果以后最终需要它,我可以轻松地将这段时间花费在优化上-我将重写其中的一部分。如果性能变得如此重要, 那么Zephir中的框架(扰流板警报:不会)。 但是我也为即将来临的垄断以及其他框架社区的令人震惊的无能而困扰。 将自己锁定在孤立的环境中并不是良好的社区管理。 拥有一个论坛是不够的–与其他论坛进行交互会更好。 传播信息,分析他人的解决方案,进行讨论。 开放,透明。 拥有一个官方博客,获取*标签,证明您的决定合理,并与流行的出版物取得联系,如果您提供的框架足够好,则可以帮助您推广框架。

That said, I’d like to invite framework maintainers and those competent in the usage of those projects to get in touch – let’s build a good repository of cross-framework content. Let’s compare solutions, do “versus” posts not for the sake of one framework winning over others, but for the sake of comparing approaches and learning from each other. You have one year until the next survey – use this time to get exposure. Use it to teach, not dictate – to collaborate, not judge. Let’s make it happen – let’s tilt the scales for next year.

就是说,我想邀请框架维护者和那些在使用这些项目方面有能力的人取得联系–让我们建立一个很好的跨框架内容存储库。 让我们比较解决方案,做“与”比较不是为了一个框架胜过另一个框架,而是为了比较方法和相互学习。 您距离下一次调查还有一年的时间,请利用这段时间进行曝光。 用它来教导而不是命令–合作而不是判断。 让我们实现它-让我们倾斜明年的规模。

数据 (Data)

The data for this survey is all in the repo. While most of the aggregation was done with R, I have a feeling some of you may want to use PHP to process this, so I’ve included some helper files – the details are all in the repo’s README file. I’ve mainly extracted the age group and education level into integers so that the whole set takes up less space and has some more robust data types inside, and I replaced Typeform’s funky multi-select answer format with the number one (1) where the answer was selected (originally, Typeform copies the name of the answer into the answer field, wasting a whole lot of space).

此调查的数据全部在存储库中 。 虽然大多数聚合是使用R完成的,但我感觉有些人可能想使用PHP来处理此问题,因此我包括了一些帮助程序文件-详细信息都在存储库的README文件中。 我主要将年龄组和受教育程度提取为整数,以便整个集合占用更少的空间,并且内部具有更健壮的数据类型,并且我将Typeform的时髦的多选答案格式替换为数字(1),其中选择了答案(最初,Typeform将答案的名称复制到答案字段中,浪费了大量空间)。

I also extracted the header fields and countries into separate PHP files (in order of appearance) so you can have them open on a separate screen or even include them directly if you need them.

我还将标题字段和国家/地区提取到单独PHP文件中(按出现顺序),因此您可以在单独的屏幕上打开它们,甚至在需要时直接包含它们。

赞助商 (Sponsorships)

Many thanks to Jetbrains for providing us with three PhpStorm licenses, and to Zend for three Zend Studio licenses, rewarding the total top six resharers of this survey. In numbers of reshares and the country they’re from, they were:

非常感谢Jetbrains为我们提供了3个PhpStorm许可证,并感谢Zend获得了3个Zend Studio许可证,从而奖励了本次调查的前6名转发者。 转售数量和来自的国家/地区是:

  • 168 (Czech Republic)

    168(捷克*)
  • 97 (Brazil)

    97(巴西)
  • 84 (Germany)

    84(德国)
  • 54 (Indonesia)

    54(印度尼西亚)
  • 53 (UK)

    53(英国)
  • 26 (Bangladesh)

    26(孟加拉国)

The first three have been contacted, and once they’ve made their choice clear the other three will get their rewards.

前三个已经联系过,一旦他们明确选择,其他三个将获得奖励。

Likewise, three random people with valid email addresses have been contacted about their three-month Learnable subscriptions.

同样,已经联系了三个具有有效电子邮件地址的随机人,以了解他们三个月的可学习订阅。

Many thanks to all who participated and to all who reshared the survey – without your efforts we couldn’t have built such an amazing body of responses. Stay tuned for more in depth analyses further down the road!

非常感谢所有参与调查的人和转发此调查的所有人-如果没有您的努力,我们就无法做出如此惊人的回应。 请继续关注,以进一步深入分析!

结论 (Conclusion)

With another survey drawing to a close, we’re once again reminded how much a good, healthy community matters. How much do you agree/disagree with my idea of why Laravel won above? Do you feel like the factors I mention aren’t that important in the grand scheme of things, or do you think I’m right on some points? Let us know in the comments below – and remember, the data is available for download, so if you come up with some interesting graphs, share them with us and we’ll add them to this post! Likewise, if you’d like some other correlations and vectors explored but don’t feel like fiddling with the data, let us know!

随着另一项调查即将结束,我们再次想起一个良好,健康的社区至关重要。 您对我关于拉拉维尔(Laravel)为何能赢得上述冠军的想法表示多少同意/不同意? 您是否觉得我提到的因素在整体规划中并不那么重要,或者您认为我在某些方面是正确的? 在下面的评论中让我们知道–并记住,数据可供下载 ,因此,如果您有一些有趣的图表,请与我们分享,我们将它们添加到这篇文章中! 同样,如果您想探索其他相关性和向量,但又不想摆弄数据,请告诉我们!

翻译自: https://www.sitepoint.com/best-php-framework-2015-sitepoint-survey-results/