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.
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.
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.
Interactive version: Interactive version: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.
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:
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 |
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!
Framework by Age Group
Finally, if we take a look at the top 5 frameworks of each age group, we get this:
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 |
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 |
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 |
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 |
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 |
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.
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.
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.
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.
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.
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:
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?
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 StackOverflow tag, justify your decisions, get in touch with popular publications which can help promote your framework if you present it well enough.
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).
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.
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:
- 168 (Czech Republic)
- 97 (Brazil)
- 84 (Germany)
- 54 (Indonesia)
- 53 (UK)
- 26 (Bangladesh)
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!
Frequently Asked Questions about PHP Frameworks
What are the key factors to consider when choosing a PHP framework?
When choosing a PHP framework, you should consider several factors. First, consider the size and complexity of your project. Some frameworks are better suited for large, complex projects, while others are more appropriate for smaller, simpler projects. Second, consider the learning curve. Some frameworks are easier to learn and use than others. Third, consider the community and support. A framework with a large, active community and good support can be very helpful. Finally, consider the performance and scalability of the framework. Some frameworks are faster and more scalable than others.
How does Laravel compare to other PHP frameworks?
Laravel is one of the most popular PHP frameworks, and for good reason. It offers a clean and elegant syntax that is easy to learn and use, a robust set of features, and a large, active community. Compared to other frameworks, Laravel is often considered more modern and more developer-friendly. However, it may not be the best choice for all projects, as it can be overkill for small, simple projects and it has a steeper learning curve than some other frameworks.
What are the advantages of using Symfony?
Symfony is another popular PHP framework. It is known for its stability, reliability, and flexibility. One of the main advantages of Symfony is its modularity. It is built around a set of reusable components that can be used independently or together, allowing you to build exactly what you need without any unnecessary overhead. Symfony also has a large, active community and excellent documentation, making it a good choice for both beginners and experienced developers.
Is CodeIgniter still relevant in 2021?
Yes, CodeIgniter is still relevant in 2021. While it may not be as popular or feature-rich as some other frameworks, it is still a solid choice for many projects. CodeIgniter is known for its simplicity and performance. It has a small footprint, making it fast and efficient, and it is easy to learn and use, making it a good choice for beginners. However, it lacks some of the modern features and conveniences of newer frameworks, so it may not be the best choice for all projects.
What is the best PHP framework for beginners?
The best PHP framework for beginners is often considered to be Laravel. Laravel has a clean and elegant syntax that is easy to learn and use, a robust set of features, and a large, active community. It also has excellent documentation and learning resources, making it a great choice for beginners. However, it has a steeper learning curve than some other frameworks, so it may not be the best choice for all beginners.
How does Yii compare to other PHP frameworks?
Yii is a high-performance PHP framework that is especially suitable for developing large-scale applications. It is known for its speed, efficiency, and security. Compared to other frameworks, Yii is often considered more powerful and flexible, but it also has a steeper learning curve. However, it has a strong community and good documentation, making it a good choice for experienced developers.
What are the advantages of using CakePHP?
CakePHP is a PHP framework that is known for its simplicity and speed. One of the main advantages of CakePHP is its convention-over-configuration philosophy, which reduces the amount of code you need to write and makes it easier to get started. CakePHP also has a strong community and good documentation, making it a good choice for both beginners and experienced developers.
Is Phalcon a good choice for PHP development?
Yes, Phalcon is a good choice for PHP development. It is a high-performance PHP framework that is known for its speed and efficiency. Phalcon is unique in that it is delivered as a C extension, making it extremely fast. However, it has a steeper learning curve than some other frameworks, so it may not be the best choice for beginners.
What is the best PHP framework for large-scale applications?
The best PHP framework for large-scale applications is often considered to be Symfony or Yii. Both frameworks are known for their power, flexibility, and scalability, making them well-suited for large, complex projects. However, they both have a steeper learning curve than some other frameworks, so they may not be the best choice for beginners.
How does Zend Framework compare to other PHP frameworks?
Zend Framework is a robust and flexible PHP framework that is often used for large, complex projects. It is known for its object-oriented approach, its use of design patterns, and its emphasis on enterprise-level standards. Compared to other frameworks, Zend Framework is often considered more powerful and flexible, but it also has a steeper learning curve and can be overkill for small, simple projects.
Bruno is a blockchain developer and technical educator at the Web3 Foundation, the foundation that's building the next generation of the free people's internet. He runs two newsletters you should subscribe to if you're interested in Web3.0: Dot Leap covers ecosystem and tech development of Web3, and NFT Review covers the evolution of the non-fungible token (digital collectibles) ecosystem inside this emerging new web. His current passion project is RMRK.app, the most advanced NFT system in the world, which allows NFTs to own other NFTs, NFTs to react to emotion, NFTs to be governed democratically, and NFTs to be multiple things at once.