views:

558

answers:

8

I'm about to begin building a huge clinical healthcare application with PHP, and I'm looking for some advice on a framework. I need to be able to come up with a quick prototype, so it's important that the framework takes care of many mundane tasks; therefore, I've narrowed it down to CakePHP or Symfony.

I'm hoping to get a few developers opinions that have worked with both frameworks.

Thanks, Pete

+3  A: 

I recommend reading the right answer for this question. It mentions Zend Framework as the best choice, and presents some correct points to justify it.

rogeriopvl
Yes it's a great answer :P
Ólafur Waage
Very much agreed.
Tom
Thanks but Zend was not one of the frameworks I asked about. I cannot use Zend since there has been a bug in Zend_ACL for quite some time.
slypete
+2  A: 

IBM published an article here on both those frameworks along with Zend in a comparisson, see:

http://www.ibm.com/developerworks/opensource/library/os-php-fwk1/?S_TACT=105AGX44&S_CMP=ART

I personally use CakePHP, it's pretty awesome compared to just straight out PHP. Easy to build things in, very MVC focused, reasonable integration with third party components. I did have some issues with the lack of any sort of discernable upgrade path between versions though. I can't speak for Symfony, but I believe it's more heavyweight than CakePHP.

Take a look at the screencasts for CakePHP as well, they give a good overview:

http://cakephp.org/screencasts

Jon
Very good IBM resource thanks!
slypete
A: 

I've had minimal experience with both frameworks, but all i've ever heard about symfony was complaints (even though it seems to be used a ton!). Probably just that people don't spend the time to fully learn the framework.

From my experience both seem to be decent frameworks, but like any good developer you must understand at least the level of abstraction below what you are using to be effective.

Martin Dale Lyness
I love symfony! (now you've heard anything else than compaints ;-)
phidah
A: 

Probably Zend Framework. If you want something different try codeigniter.com

or it's oo version in php5 www.kohanaphp.com

red777
A: 

I have not used other frameworks, but I use Zend Framework and it is great. benefits are:

  1. clean and standard library, coding style, conventions, etc.
  2. enterprise support: it is supported by Zend, the company that every PHP programmer knows
  3. comprehensive manual, many blog posts and tutorials, at least 2 well written books
  4. has packages on most open source operating systems, so easy to install and maintain
  5. a very live open source project, updates come so soon you can't keep up to them.
  6. open license: ZF uses BSD-like license so you won't have many licensing issues
farzad
+3  A: 

I'd like to counter some of the arguments presented above. I've worked extensively with Zend Framework and symfony, and I've had a brief look at CakePHP.

First of all, compared to symfony, the ZF documentation is not "extensive" - its on the other hand quite superficial. Second, I think that the symfony community is much more available and helpful than the ZF framework in general, and the development process is much more transparent.

However, I agree that Zend Framework enjoys the advantage of being supported by Zend, which might be a powerful argument for enterprise projects.

In my experience symfony is more of a framework than ZF. In symfony you use the whole package - or the whole frame, while you in ZF is able to use tools to your liking, making it more like a "toolbox" than a framework.

Also remember that if you like some of the tools in ZF, you'll be able to use these in symfony (and probably also CakePHP) projects, alongside symfony/CakePHP.

This is not really an answer but more like a general comment to the answers given above.

phidah
Agreed with the "toolbox" comment. CakePHP is also very much a full framework -- which might be why it performs worse in benchmarks (it goes through a full instantiation every request, while ZF only loads some modules). And most benchmarks just measure a hello world type application.
Travis Leleu
A: 

My framework decisions boil down to this (note that I primarily use Cake, little Zend, and have fiddled around with CodeIgniter and symfony).

Zend is the most enterprisey. You get the folks @ Zend supporting it -- I think it's development timeline is the most solid moving forward. It also has some great modules like PDF readers, etc.

CakePHP's focus (IMO) is rapid development. But it's consistently one of the worst performance-wise -- if you're going to have a heavy-use app, I think that Paul M Jones has some posts on benchmarks. Zend is about 2-2.5x faster than Cake, IIRC. If you don't have MVC experience, Cake can be a good choice b/c it def. locks you into MVC. I find myself constantly needing to think outside their pattern, though -- which is why I'm slowly moving to Zend.

The other frameworks have different strengths, too. At PHP|Tek in Chicago, CodeIgniter was the talk of the conference, so it might have a lot of momentum over the next year or two.

Cake and Zend also have super tight integration with some other enterprisey stuff like unit tests, etc.

Travis Leleu
+2  A: 

Let me begin by saying I have no prior experience with CakePHP or Zend other than having browsed around in the framework code and their documentation. I started using Symfony about 15 months ago and I researched before what framework to use. I decided to go for Symfony because I found the Symfony core to be written in a nice and orderly way. It felt like I could easily understand the framework by reading the code itself. Besides that I found an enormous amount of documentation that is really focussed on working with the framework to produce certain functionalities. Very pragmatic so to say. CakePHP just doesn't seem to fit my personal style and I perceived the core to be very hacky. Again, I might be wrong but this was how I felt about it back than. After 15 months of coding with Symfony I'm still very satisfied. Often you read comments or blogs that say it's too complicated. I think these people insult their own intelligence. It indeed takes a while before you get a firm grasp of the frameworks internals and approaches to problems but once you are past that point it really is an awesome tool. The community is very helpful and the future looks bright. All in all I can only advise you to go with your gut feeling when you look at the approaches taken by the frameworks and their code and coding styles. You'll spend a lot of time in these frameworks so you must feel at ease when you look at their code and their solutions for common problems. Every framework out there is terrible if you start fighting it, going along with it will make every one of them a great tool. Some might in the end turn out better than the other. I guess you'll know the answer to that yourself after finishing your project with it.

Good luck:-)

Marijn Huizendveld