views:

1436

answers:

9

We need to build a large scale web application (say... a CRM or Learning Management Systems). We plan to do it using the LAMP stack and we are still researching on as to which Framework to use. We have mainly 3 frameworks:

  1. Codeigniter
  2. Symfony
  3. Yiiframework

Can anyone suggest which is the best one to choose among these?

A: 

Its really in opinion and what you want to do. I can say my company right now is developing a new website, which is on track for launch Jan 1 2010, using the Zend Framework. We looked into a lot of these frameworks and choose Zend, primarily because I have had previous experience with it, and a colleague of mine uses it regularly as well.

Each one of these frameworks all has its own strengths and weaknesses I am sure, but what I can recommend is sample all of them.

Create a mini-site using each of the frameworks in MVC. Create the same model in each one of them, create a view, and create a controller. See which one you and your team like best, and move on from there.

Really, all you are going to get from responses is what their opinion is on each of the frameworks. My opinion is that I enjoy the Zend Framework. Someone else will respond right after this stating why they like XXX better than YYY.

Take a sample of each, see which fits you and your team, and progress from there.

Jesta
+3  A: 

I know this is probably not the answer you're looking for, but, if your project is going to be large and attract a lot of traffic, I don't think you should use a pre-packaged framework at all. I think you should roll your own.

In general, rolling your own solution to any common problem is usually discouraged. But frameworks, in particular, tend to be packed with bulky feature sets that are flexible and convenient, yes, but bog down your app. As your application grows, a well-designed, simple framework that does only what you need it to will serve you well.

I notice that CakePHP is not on your list; if that's because of its bulk, then that was a good decision.

Lucas Oman
+1 My preferred solution. I've *heard* Symfony would be best in this scenario. Use libraries/classes not frameworks!
Al
Symfony is definitely an Enterprise level framework. I'd say that and Zend are the real options in this case. CakePHP and CodeIgniter are good for smaller projects.
Jon Winstanley
+13  A: 

I am not sure there is a clear an definitive answer to that question...

It's something that has been debated quite a couple of times already, I'd say... So you might want to take a look at some of these questions/answers (pretty random selection, I have to admit!) :

And, more generally, a search on php+framework might get you interesting stuff ;-)


Now, what would I do / choose ?

Well, the framework I know the best is Zend Framework... So I think (at least, without knowing more about your project) I would go with Zend Framework.
Why ? Because the time required to learn a framework is important ; might take a couple of weeks to know a framework "quite well", and a couple of months to "master it"... So, if you already know a framework, starting from scratch with another one might not be a wise idea.

If you don't know any framework... Well, invest something like 2 weeks studying the most important ones, doing some small prototype : this is the best way to see what they can do, how they can help you work, and decide wisely ;-)
And do not do that alone : work with a colleague : being two to do that kind of stuff / take that kind of decision is always better : you can learn from each other, and confront your opinions!
Yes, it's long, yes it's a bit costly... But if it's a decision that will impact the next couple of years for your company, it is definitly worth investing some time before deciding, and not rush that decision!


Some will say "but this one answers to 5 req/s more that the other one"... And so what ?

If you have a big application, you will most likely use some kind of cache ; maybe/probablye even multiple layers of cache... This (your caching strategy) is what will make the difference -- probably not the few differences in base performance between a couple of frameworks!

Pascal MARTIN
A: 

I've uses several frame works which includes DotNetNuke and Wordpress. DNN is VB and WP is in PHP. Here's the bigges question you should ask yourself. Is learning how to extend these portals more beneficial than creating your own framework or application from scratch?

I recently had a client who insisted on creating a website from WordPress. I had to regut this thing in order to fulfill the requirements of the project when it would have been easeir to creat the site from the ground up.

Try running that cost benefit analysis in your head and see what you come up with. Also keep in mind that if you use PHP you're going to need FireBug and FirePHP to help you trace and debug your application. It's a pain in the but as there is no real PHP specific IDE.

gsirianni
I don't think DotNetNuke or Wordpress are frameworks they are CMS and blogging platforns.
Jon Winstanley
WP is a php framework? no PHP specific IDE? are u knowing what u r talking about?
weng
Dude this question was asked months ago. If you want to bitch and moan about something so old just so you can get one step closer to one of site's badges I suggest you get a life. As for my understanding of the word framework, initially I thought the gentleman was asking for a PHP tool similar to the DotNetNuke "framework" which can also be called a content management system(CMS). My apologies if I did not grasp the full scope of the quesiton when I first read it.
gsirianni
A: 

Probaby not Symfony. Yii or Code Igniter would be the best, but you should think about making your own framework if you're going to build a big application.

There's a benchmark at Yii's webpage

Adrián
Speed is not everything. Compare the functionality and the code quality of the projects too.
Jon Winstanley
of course not... in fact, if you're willing to learn a framework (Code Igniter, Yii, Cake... it doesn't matters) and the website isn't going to have lots of traffic (can fit in a single server) then yes, you should use a framework. But not if you're going to build a very visited site, mostly because of performance problems.
Adrián
A: 

I'm in agrreance with the rest it's best to build your own do not use any prepackaged goods. As for frameworks code igniter is good and Zend Framework is making their move. it all depends on your coding and the time you want to take to learn on how to use em.

AlbertRosa
+1  A: 

Whichever one you like most. Don't worry about the speed of them; once the DB is populated its queries will overshadow almost every factor of page speed.

orlandu63
A: 

I've used symfony on several projects, and was looking at changing to Yii or Codeigniter just to learn another framework. However, I now think that experience in a framework is the most important investment.

That being said, identify the big blocks of your projects, and compare those requirements with each framework's features + plugins. It's critical to make sure:

  1. You can leverage existing interfaces to common requirements (linked lists, PayPal interfaces, good GUI/templating tools, etc)
  2. You have easy hooks to extend the framework to solve your specific business logic

The more plugins/features a framework has, the more you rely on #1. However, I don't know of any framework that has everything, so #2 becomes very important. However, that is only beneficial with that significant investment of time learning the framework.

Just my $0.02

Mike Crowe
A: 

Zend framework has a lot of tools but the books by apress are not that good at all for php. I have bought 3 books and the website that is a companion for the book doesnt even work. Apress is just pushing books out the door. Dont believe me checkout www.loudbite.com this is a site developed by two programmers that know zend. The book is Beginning ZendFramework by apress.

jack