Is it faster to develop using the Zend Framework or Symfony?
Neither. Development time is shorter with whatever tool you took the time to learn and are comfortable with.
Symfony is a full stack (integrated) framework. If you decide to go with it, you need to learn the Symfony way of things, which can be very good for a newbie looking for some tangible guidance, but a bit annoying when you want to customize some sensible areas to your liking (e.g. emulate another framework like django).
ZF is a glue framework. You can pick and choose which modules you'd like to use from it, which makes it more portable. In fact, that's exactly what various other frameworks do. They include or extend portions of ZF that they like and don't feel like reinventing.
Some people feel that Symfony gives them an edge in development time. Idk how factually accurate that is. Zend is very often used with Doctrine as well, so that argument is dead. After 1 or 2 projects, most Zend developers reuse their previous bootstrap (if they don't use Zend_Bootstrap). Zend also has a Plugin/Callback system, as well as a way to abstract various processing to helpers.
Both frameworks require a considerable initial learning time investment. Bottom line is, these 2 projects are built by serious developers with efficiency and solid architecture in mind. It really does come down to how well you know them.
Assuming your definition of 'fast' meaning 'agile programming'.
Symfony is known as a PHP MVC for rapid development, while Zend Framework has been known for its completeness.
I am a CodeIgniter coder and I picked it over 2 reason/requirement:
- PHP4 compaitability
- Minimal learning curve
There are plenty of PHP MVC comparisons if you search google, this one explains best: http://debuggable.com/posts/cake-vs-zend-vs-symfony-vs-igniter:4942b243-85bc-404a-afc9-34aa4834cda3
The reasons I think you can develop faster in symfony:
- Netbeans IDE support (recently 6.8)
- Good code generators
- Tons of plugins for various tasks
- Doctrine ORM and Symfony forms - you can create things fast as lightning :)
It has indeed maybe a steeper learning curve, but once you're familiar with it I think it's faster with symfony. However I still use some of the smart Zend classes in my symfony applications - there's nothing wrong with that.
If you do not know symfony — it definitely isn't.
But if you are familiar with both ZF and symfony — symfony wins.
i think ZF is superior in many points (it's from Zend, well mantained, core developers don't quarrel then part, api is clear and components loosely coupled, has less overhead) but I use symfony because of the code generator (admin interface + frontend CRUD) which cuts the developing time a lot (and Doctrine is a good ORM).
Think about symfony as a RAD and ZF as a collection of libraries (the main difference is that following MVC pattern is not compulsory using ZF)
Symfony is the clear winner over Zend Framework when focusing on development time.
I compared Zend Framework and symfony on my blog a couple weeks ago:http://www.robertspeer.com/blog/symfony-refactor-of-the-zend-quick-start-tutorial/
The summary is that not only does all the syntactic sugar in symfony make development faster, it also makes for better code & more competitive estimates.
This has nothing to do with the quality of the developer. Generated code is just going to be written faster and with fewer "fumble finger" type mistakes.
Symfony's plugin system is also really a time saver. Especially sfGuard, being able to have a full user management system with just a little bit of configuration is a huge win.
All the little things Symfony does right also makes for a more successful project in the long term. Filters and tasks are a good example of features that I often don't plan on using at the beginning of a project but they end up saving the day several months into it.
Where symfony is an essential tool is in a web dev shop that has a high project throughput and a core competency in LAMP. However if the team does not have a specific competency in a back end language Ruby on Rails or Django with Python need to be considerations as well.
As good as Zend Framework is, I would only use it if I had one large project to work on and a core competency in PHP.
The great thing about this debate is that the only correct answer is both. Zend and Symfony play well together so it's actually best to know and use pieces of both when it makes sense to do so.