There is no "best framework"; there is only "the framework that makes my job simplest". For some types of applications, that may mean something simple and small like CodeIgnitor (you really can build a blog in twenty minutes -- well, twenty minutes plus however long it takes to mess about with graphics and CSS). For others, it means something like the Zend Framework, the PHP world's version of Java Enterprise Edition (a team of twenty developers can build a blog in twenty weeks -- but it can support twenty thousand simultaneous users distributed across twenty nations using twenty different languages, and it can tie in to your catalog and invoicing systems, track customer service issues, and prepare the buffet for your launch party).
You don't have to use everything a big framework provides, but it can be frustrating to have to wade through the documentation in order to find what you do need if you're not working with it all full-time. Smaller frameworks may conveniently leave out things you really wish you had, but you can always add to them as necessary.
If your project is relatively simple (a handful of UI elements dealing with a relatively small number of tables across one or two databases), you may find that something like
CodeIgnitor or
CakePHP will get you to 90% in next to no time. For realz. (Both of these frameworks are excellent, by the way. Which one you'd use is really a matter of taste.) You can bang out a small site with a blog/news section, a forum, a contact form and a way to create semi-static content pages in a couple of days (modulo design work). But you may find that you have to step outside of the framework in order to provide unique features, and that can be frustrating -- sometimes it's difficult to make framework-provided features work with your custom code and vice-versa.
I've always preferred the "
bottom up" approach to programming myself. As Leviathon noted above, you are going to end up with your own bag of tricks eventually by simply surviving the development wars, and as long as you don't throw everything away at the end of every project, you'll wind up writing applications in your own version of the language rather than in raw PHP. The difference between your "framework" and the off-the-shelf varieties is that there will be no black boxes, no surprises, and no absolute limits.