+3  A: 

For me the biggest reason is to not reinvent the wheel every time. Also using code written and tested by the open source community is better, safer and brings faster develop (except for the starting learning curve).

Keeper
+1. As a side note, re-inventing the wheel once is actually a good idea if you want to learn about wheels. It's a good exercise for a PHP programmer to write their own basic framework.
Lotus Notes
+1  A: 

Frameworks abstract away some of the "muck" of development. They provide reusable functionality so you don't have to re-implement everything from scratch. This enables you to create higher quality products faster. I don't know what Zend in particular provides but learning a framework can be beneficial if it matches the type of system you want to build. That being said selecting the right framework is important for it to be useful.

Craig Suchanec
A: 

A framework is like having a robotic arm to help you. Frameworks tackle the mundane repetitive tasks so you can focus on features. Examples include things like validation, routing, database connectivity, even scaffolds for add/edit/view of database rows. Frameworks also provide a common structure. Try maintaining a project in PHP for 3-4 years with 2+ programmers. You'll see how challenging it is too keep the code clean and functional, even if it uses a good framework.

If you love to code and it is a hobby project, sure do whatever or roll your own framework. If you are professional, or are working for pay, a framework is almost essential to remain competitive in this market.

One caveat - make sure the framework does what you need, and make sure to understand its limitations. When I select an open source framework at my job, I read some of the code to get a sense of the project quality. I also look for an actively maintained project and bullet proof documentation.

NW Architect
+1  A: 

I am a recent convert to Zend Framework and I can honestly say that after the first week or so of trudging around to figure out where to put what that I am able to develop much quicker using ZF than I was previously. I have thousands of lines of php code that I wrote for session management, form validation, you name it. In the cases where I decided to reuse that code it has been very easy to extend all the base classes.

The repetetive, mundane tasks, the database handling and queries, the stuff you hate- it's already done for you, you don't have to do it every time all the time any more.

I look at it like this: Even if you or I are personally smarter and better than every single person that is developing the frame work, they have more collective talent than we ever can. They are able to formulate ideas, tests, and corner cases that we may never think of- especially on the safety front. I have no experience with Symfony or a lot of other PHP frameworks, but I can say that using ZF in my projects is already saving me a LOT of time.

manyxcxi