First up, I can only claim to be an expert in Symfony2. My knowledge of other PHP frameworks basically consists of actively following twitter for things related to PHP, reading planet-php.org and taking the time to read up on linked mailing list threads and IRC chat logs. I have not been that active on the conference scene in the past few years, but the ones where I did attend I also tried to take a peek at what others are doing. Also this post is kind of exploratory to see what other people think, hopefully without inviting a flame fest upon myself. So with this disclaimer out of the way, I think the big 3 frameworks for the next few years will be Lithium, Zend Framework 2 and Symfony2.
Let me first start with Lithium. I do not think that it will hold a gigantic market share, but it will have a constant following that is noticeable enough to make it less niche than other frameworks. From what I have seen it its main differentiating characteristic is that provides AOP leveraging closures to enable flexibility without going down to road of deep complex class inheritance. This makes it very well suited for people working in smaller teams that have very custom needs and those that tend to be wary of frameworks that do too much. Obviously closures can be shared, but they are not the ideal approach if you want to really push the concept of code reusability in the "plugin" sense.
Zend Framework 2 is still actively under development. For a while it seems things have been lingering but now ZF2 has picked up steam and I expect that they will be able to show their vision of how things are supposed to work with some practical examples at ZendCon. Overall I don't think that Zend Framework 2 will bring much innovation in terms of MVC, but that is not necessary. The main thing they will have to offer is a complete stack that is well documented and tested. Their loyal fan base especially in the US, plus their strong marketing position will do the rest to ensure that they will continue to be a key player. Also many developers will end up combing the libraries offered in Zend Framework 2 with whatever other full stack framework they use. So there will likely be a bit of Zend Framework 2 in many projects that do not use their MVC. Finally those people that buy into the CLA idea, thinking that it can stop a patent troll from taking them to court in the US, will also prefer Zend Framework 2. As I have stated numerous times, I think Zend is doing a huge disservice to the community with their FUD campaign and false promises of security. But in terms of business it might still make sense for them and could have enabled them to close some deals with "enterprise" customers.
Symfony2 is my personal favorite so hopefully I am not just being biased when I say that it will be the one leading the pack. It already has the stable release out the door, contrary to Zend Framework 2, which has given it a lot of momentum. This shows itself also in the rapidly growing number of Bundles (plugins in Symfony2 lingo). The fact that phpBB and Midgard will be based on Symfony2, while Drupal 8 will use multiple components from Symfony2 in its core are also significant wins. In the PHP world all too few applications are based on full stack frameworks and in the past it was really only Zend Framework that managed to get high profile open source applications like Magento to be build on them (then again Magento put their very own spin on MVC). The big challenge for Symfony2 is now how to manage the success, specifically figure out how to best ensure that potential users are not lost in a sea of Bundles that eventually might be redundant and/or ill maintained. The symfony2bundles.org site tries to combat this with a dynamic rating system based on github stats, but this might not be enough. Furthermore the documentation needs to improve, most importantly for the components. On the upside many of the components can be seen in action in the much simpler Silex micro framework spin-off, which will likely drive adoption both ways. Aka I expect some people to come to Silex via Symfony2 (like we here at Liip have used it for a simple project where we just needed to make some data accessible via backbonejs) and some people will come to Symfony2 via Silex.
Now what about the rest? With Flow3 and Nooku there are two full stack frameworks emerging out of established CMS's. There are of course countless of PHP frameworks that have been successful in the past that will continue to have some following. And there will be countless new PHP frameworks launched every month. Their users will derive from the fact that they might fill a very specific technical niche, that the users simply have too much benefit from being loyal to an existing community or just that geographical proximity to the core developers makes the difference. Overall I do recommend anyone to take a long hard look at the above 3 frameworks before working on the next PHP framework and make sure that there is actually sufficient value there instead of build on top and/or customizing one of the above three frameworks. Or at the very least use some of the core components. The good news is that the quality of PHP frameworks continues to rise at a rapid pace. I am giving these predictions a life time of 3 years.
PS: I talked about this topic with Lars at the recent FrontendConf in Zurich and IIRC he seemed to have a similar view point, but ask him rather than take my faint recollections :)
Update: Based on the comments and partially supported by my twitter timeline it seems like there is also a demand for more "old school" simple yet full stack frameworks, that force inheritance and conventions in order to get more simplicity. In this category both Yii and CodeIgniter seem popular choices.
keep an eye on yiiframework.
There might be room for another type of framework. Aka one that tries to be more full stack than Lithium but less heavy on design patterns than ZF2/Symfony2. Yii and CodeIgniter come to mind as candidates for this category.
Nette is quite popular in CZ & SK: http://nette.org/en/
We are using Yii for several projects, and I'm very happy with it. I did a comparison of several frameworks before ending up with Yii and I've never looked back.
It would be really interesting to hear your impressions on it after doing a test-app or checking out the source.
From what I have seen of Yii it looks/feels a lot like symfony 1.x in the way that it uses ActiveRecord, lots of conventions and lots of configuration around the controller. This keeps things simple for beginners, but imho puts you into a corner when you try to do more advanced stuff and it also limits the ability to share code.
Anyway, I just went to the website and briefly looked at one of the tutorials linked there. With a bit of reading and skimming my above expectations were validated.
Next to coming directly via Symfony2 or Silex there's a third way.
I think there's a big potential in the standalone Symfony Components. As every component might be used without the rest of the framework they're perfect candidates to integrate in existing or custom solutions (like other frameworks or applications).
This way, with a bit of effort in documenting them, we might promote Symfony indirectly.
@Kuba: yeah absolutely, which is why i mentioned it as one of the main deficiencies. Exactly with this approach I was able to convince Liip to switch to Symfony2 as well. We first added lots of Symfony2 to Okapi to see how things felt within a familiar framework and then decided we want it all.
Actually we were using the PHP 5.2 versions which are already quite decently documented. A starting point from which we can work from towards documenting the current 5.3 versions (and all the new components too).
I am curious why no mention of Codeigniter. Ive long considered it to be a strong framework, but it seems to not get the love of Symphony and others.
Sure I see CI mentioned much more than Yii in my twitter timeline. Again for me it falls into the category like symfony 1.x: focus is on being as powerful as possible without burdening the developer with too many design patterns, emphasis on conventions and "magic" via mandatory parent classes etc. But again I point to my disclaimer at the top :)