views:

2933

answers:

7

I have some exposure to CakePHP and think it is a great framework. Then, I run into this thing called Qcodo. It is another PHP Framework. I've been hearing Zend alot. They all seem very neat, but I'm wondering what are differences between all these frameworks.

Before I waste too much time learning another framework, does anyone know pros and cons of each framework?

They all seemed to have the general goal: making web application development in PHP easy, modular, and scalable.

EDIT Found this interesting comparison result between CakePHP and Zend

+2  A: 

I recommend reading the features of each and determining what you need and looking at code samples of the features you'll be using most.

Some frameworks may seem intuitive to you, but not to others. Selecting a PHP framework is a very personal choice IMO.

I've been using CodeIgniter myself after using CakePHP for some time. The main reason for switching was due to performance, but CakePHP has come a long way in the last few years so that's probably not a valid reason anymore.

[Edit: Apparently, it still has performance shortcomings, see post by ryeguy and comments.]

I've never found Zend to be intuitive and have never looked into Qcodo.

Wikipedia has a list of web app frameworks by language, you might find information to help you decide there as well.

Ben S
+4  A: 

I have never heard of Qcodo.

CakePHP is a full featured framework with a lot of automagic, but unfortunately it is one of the slowest frameworks out there. It also doesn't have official forums, and there really isn't that busy of a community. It tries to be a Ruby on Rails clone, but that just doesn't work so well with PHP.

Zend is impressive. It has a strong community and a corporate backing. It is very featured, but it is also very bloated (see that benchmark) so it has moderate performance. From what I hear though, you are able to use the components separately without using the whole framework, and can even use them with other frameworks!

I use CodeIgniter at work and I love it. It is by far the most newbie friendly framework, and with your CakePHP experience it should be a breeze. It has very good documentation that is thorough, clear, and well written. There are a few features that it doesn't have (such as an ORM) that other frameworks have, but CI has one of the most active framework communities I've seen. Since it's easy to write libraries for it, you can find a library to do pretty much anything you want to - ORMs, authentication, etc. To add to this, if you want an ORM for CI, I recommend DataMapper.

You may also want to check out Kohana. It's a spin off of CodeIgniter. It's strictly PHP5 and has an ORM and some more features. Haven't used it myself though, but I have heard good things.

ryeguy
THe comparison you are referencing is really flawed, and I don't know where you are pulling your CakePHP "facts" from but they flat out wrong.
Ronny Vindenes
How? The only thing worse than me giving "flawed facts" is you giving an empty rebuttal.
ryeguy
I provided a benchmark on how slow Cake is - and there are many more out there with the same conclusion. There are no official forums. Many of Ruby on Rail's magic features need almost hack-like workarounds in PHP, leading to performance degredation. None of this is subjective, it's all fact.
ryeguy
Here are some more benchmarks proving the same exact thing: http://www.sellersrank.com/php/cakephp-codeigniter-benchmark/ http://paul-m-jones.com/blog/?p=238
ryeguy
The official forum for CakePHP is located at http://groups.google.com/group/cake-php The official community site for CakePHP is http://bakery.cakephp.org/ As for the comparisons you are referencing they are all ancient. The current stable major version of CakePHP was released christmas 2008.
Ronny Vindenes
Hmm..I stand corrected on the forums (which is what I was referring to when I said "community" - I knew about the bakery). The performance benchmark is 9 months old, yes, but do you really expect it to be different? CI is faster than Cake because it's lean.
ryeguy
Yes, I do expect it to be different because there was a big effort on improving performance in december 2008 (mostly focusing on regressions that had built up during the 1.2 beta cycle). Just to be clear I do NOT expect it to out perform CI on pure speed in most cases.
Ronny Vindenes
A: 

I use CodeIgniter mainly because it had really good documentation and has a reputation of being easy to use. Also, Rasmus said it was his favorite, which is admittedly a lame reason, but I've had no complaints.

CI wasn't on the list for comparison.
rick
A: 

Don't ignore Symfony, it rocks. I'd say its biggest strengths are a consistent "go with the best practice" approach at every level, a vibrant community and excellent documentation.

Nathan
+2  A: 

I use both QCodo & Zend Framework

QCodo is a MVC framework of code generator, a lot of codes are ganerated from your database design, and produce ready to use Search & Edit Form for each of your database table. It also handle the database table relationship to pre-generate a set of methods for one-to-many / many-to-many relationship between tables.

Due to these codes were generated from your database design, all the codes were optimsed for each project. In short, It is a framework of database oriented

...................................................

Zend Framework is designed, as far as I know from the founder of this project), to decouple all the models, and indeed they are deploying a lot of ready to use models for different kind of project, from the Zend_ACL (access control list for authenication), to Zend _Search _Lucene, Zend _Service _Twitter, Zend _Service _Flickr, etc). And I think there will be for the future.

+1  A: 

My vote for Qcodo! A while ago I did a research to what suited me best, and the result is qcodo, nowadays I can't do a project without considering to use qcodo, or at least his database handling part which is absolutely fantastic.

Mark
What did you like about it? We're using it and the lack of a community has been a huge challenge.
Angela
+1  A: 

I think Simfony is the best PHP framework although I have not use it. I used mainly Qcodo/Qcubed but I am moving to Rails, this is why I find Simfony not bad. I tried Code Igniter and is not, it is simple to use, light (I suppose), but it does not have any scaffolding, but this might be changed now. As another guy said you can use an external ORM because CI does not have one by default. Zend Framework has a very modular architecture and has many libraries. I used Zend_ACL but permission inheritance was a pain so I did my own implentation, Zend_Lucene queries did not found the data I needed... ZF is a very low level framework and it needs an ORM too. I had a look at CakePHP but I found it its database interface not at the level of Propel, Qcodo and PHPDoctrine, but I think the you can use your own library.

I usually want in a framework:

  • ORM and object wrapping the real row in the database ($objUser->Name = 'Jack')
  • MVC - most of the are MVC
  • Code generators (Qcodo is fantastic to code generate from the database)
  • Front controller, routing and url friendly (Qcodo does not have one)
  • Clean template (Qcodo has $objLabel->Render(); not real tags)
  • helper methods like link_to, image_tag etc (Simphony and Ruby on Rails)
  • Database migration to keep track of DB changes
  • integrated testing framework to test the real application, not few isolated functions (Rails do that and may Simfony)
  • The community and popularity of the framework.

Most of the advanced PHP developers I met use Simfony, but this is from my personal experience only.

Concluding, I would use Simfony bit I strongly suggest to try Rails using Ruby or JRuby.

rtacconi