views:

3038

answers:

22

Okay, before I start this, I am well aware of how subjective this question is.

For my case, I'd like to define the 'best' for me as:

  • Rapid development
  • "Pretty" URLs
  • Data validation
  • Good knowledge base available
  • Not impossible to integrate other PHP software with

This is a pretty generic definition, but all I'm looking for here is opinions.

Edited: Here's a better way to ask this question:

You have two weeks to create a full scale booking and scheduling system that accepts Google Checkout payments (via the API) and integrates with an open source message board software.

Which framework do you choose and why?

+2  A: 

I've used CodeIgniter and have loved it, learning to use it is quite easy and there is a great community and Derek Allard's blog is a good place to check out. I'd recommend it.

Donnie H
+6  A: 

I'd check out the Zend framework. I think it has everything you need.

Bill the Lizard
And it's terribly slow.
Darryl Hein
He already said "PHP", don't you think you're being redundant?
Bill the Lizard
Bill, the Zend Framework (not Zend Platform or Zend Core) is a collection of PHP classes and add-ons meant to be used as an application framework. You can use the Zend Platform/Core without The Framework™, so it's not redundant.
Alan Storm
I meant "PHP" and "slow" were redundant. I guess it was a joke that was only funny to me. :)
Bill the Lizard
PHP is slow, even Rasmus Lerdorf admits it. Speed is not why one would use PHP.
Bill Karwin
No, simplicity and ridiculous availability are why you use PHP.
Bill the Lizard
@Bill the lizzard, Indeed, PHP apps often have to wait on slow database connections anyway, and hardly ever have to do something complex anyway.
Pim Jager
+9  A: 

I think you'll like CodeIgniter

daniels
I second CI - it is clean, concise and works well with PHP
Toby Hede
I like CI but isn't fully written in PHP 5... thats why maybe Kohana is a best choise. Kohana is a port of CI
Gabriel Sosa
@Gabriel I don't think it is fair to say Kohana is a *port* of CI. It started as a fork, but version 3 is a complete rewrite (bar some helpers like `text`)
alex
+5  A: 

Okay - I'm an unexperienced php developer .. but after doing a bit of research, I chose kohana. I think it fulfills most of your requirements.

codeinthehole
+9  A: 

Symfony.

It's awesome, especially how well it is documented and how easy to integrate things are.

Roel
Documentation is not up-to-date, watch out I got several problem with their tutorial.
Daok
I've not run into a problem with the 1.0 (LTS) documentation. Symfony is very quick to get up and running, is easy to integrate with other code - including Zend framework, and has plenty of plugins.
Colonel Sponsz
Symfony has a steep learning curve, I'll admit, but I think it's worth it. It is far more cohesive than the Zend Framework and it can fully utilize any Zend Framework components you'd like to use anyways.
Pro777
I know this is late, but for anyone evaluating, they should know that Symfony is powerful yet extraordinarily slow. If the actual project was a booking and scheduling system, you're looking for speed, and Symfony will not scale like that.
Jordan
A: 

CodeIgniter is definitely the most quick to start off. It's simple to use. Symphony is also great but has a greater learning curve.

If you want something more customizable and advanced you can check out php.MVC

rogeriopvl
+4  A: 

Symfony! Go for it for its simplicity, documentation. Even Yahoo chose it to build delicious

askgelal
Symfony is hardly simple. It requires YAML to get running, or in lieu of that to get Doctrine to generate the YAML for you from an existing SQL Schema.I recently did generate YAML this way from doctrine with PostgreSQL and it was hardly "smooth sailing".
Phillip Whelan
so true...symphony is just not for RAD
weng
+31  A: 

Questions like this are always going to be answered with: Zend Framework, CakePHP, Symfony, CodeIgniter (Kohana). Those are the most popular PHP frameworks.

The real question is, which framework solves which problem the best? I have my own opinion (frequently Zend Framework fits the bill for what it's worth) but I really think you will have to take a look at each of them in order to see what works best for you.

gaoshan88
a fair answer..
Mark
Lithium (http://lithify.me) wasn't included here. I kind of think this is more l33t than cake, as the developers of cake forked to do this instead, :). So if you're really really l33t, at least check this out.
Dan Beam
I am not in the least bit l33t.
gaoshan88
Zend seems to have a pretty high startup/configuration cost.
Frank Farmer
A: 

I've personally use Zend Framework which has almost everything you mentioned.

It is quite easy to grasp if you are experienced in PHP, I joined a project which is using it and started creating production code in no time. As always, you will always have to have the framework documentation available.

I am not sure about the integration part though. It may be tricky because of the Zend routers, there might be an easy solution but I have no experience in that area.

Francisco Soto
+1  A: 

There are huge benefits to using a framework. The initial learning curve is a worthwhile investment because of the enormous amounts of time you will save in the long run, and even in the not-so long run. I personally use and am a huge proponent of the Fuse PHP MVC Framework. Incredibly easy to get started with, but powerful enough to handle everything - granular user/group permissions, simple but robust form handling, advanced searching built right into the controller, and the list goes on. I work with both Fuse and Cake on a daily basis, and I often wish I could just convert the Cake projects to Fuse, but they're already very far along.

A: 

I'd use Seagull if I had 2 weeks to deliver. Although, that's from the perspective of a regular, so I'm not sure how long it would take you to familiarise yourself with the framework, but if you know other frameworks, you won't have a problem with this.

ed209
A: 

My vote goes to symfony.

develop7
Why that one in particular?
Phantom Watson
+3  A: 

Pretty much any of the full stack PHP frameworks have what you need (cakephp, symfony, zend). Zend might be the right choice for the job because it has functions for many web services like google payments (not sure). The framework I am most comfortable with is cakephp, mostly because that is what I learned first and it seemed to fit my needs and programming style. It felt just right to me. I've tried basic demos with others but they just didn't really feel right to me. If it were me I would ultimately go with CakePHP.

+3  A: 

I used CakePHP with good results

Gabriel Sosa
A: 

I use lion framework

A: 

Have a look at yii. The benchmarks look impressive. Haven't tried it myself, though.

sandesh247
+1  A: 

I would suggest Zend Framework. When the time allotment you have, Zend Framework components will surely help; for example see Zend_Gdata http://framework.zend.com/manual/en/zend.gdata.html

wenbert
+1  A: 

Yii is great indeed - in one week I managed to make a basic cms with logins, admin side, i18n, message translations to database, menu tree (both admin and public side). Now working on making support for modules that could easyly be installed.

A: 

Just to explain what I'm use for more than 6 years. I have my own PHP framework (not open source) based on hybrid object and scripting engine mostly for using in back-end / admin part of site.

Footprint is very small about 5-10 scripts (<100Kb). It is MySQL only. Speed is extremely fast as they use only several object and scripts in process of page creation. This is archived via semi "compiled" (created) php script.

Its like phpMyadmin to manage table data with added functionality to customize data browse and edit forms. With additional single _creator / configuration script I'm able to produce ready-to-run PHP script (most of them are 1-3Kb, smaller than cluster size on HD :) ) for this framework configured against relational database model (created with WorkBenchSE). Created script can be additionally twicked/hacked via many available options for any required purpose. Its lack many of fancy function which mentioned frameworks above have, but I never see more customizable and useful engine for ME :). For example its uses everything which host system can offer via system calls and nasty evals for the most complicated logic. This PHP framework express all my experience and skill in programming (almost 20 years!) and so, it is best for me (and clients like it also!).

mikikg
"I use my own that I created over 20 years, and you can't have it" is not an answer to "I have 2 weeks to get stuff done, what framework can help me?"
Sylverdrag
A: 

It should also be easy to use most of the Zend Framework components within another framework if needed. I've used Zend_GData and Zend_Search_Lucene components with CakePHP for example.

MSX
+2  A: 

You may try yiiframework. Also I like cakephp, symfony is harder to learn

dimis
yeah, I agree with you. symfony is harder to learn.
Gaurav Sharma
+1  A: 

I have been working on a framework called the RDS Framework. It is the offspring of a lor of websites I made in PHP. With every website I made the system turned into a whole framework.

You can download it and give it a try, it is nicely structures and it is focused on web-development. It has some special features and structuring that is not available in some other frameworks.

There are also some extensions you can download so you can make the framework bigger to your needs.

There are also some video tutoials and there is a documentation to get you started.

The nice thing I think is that it uses normal PHP, and you can change everything in the code. It also uses full SQL queries so you have full control over your whole application.

Saif Bechan