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.
IBM published an article here on both those frameworks along with Zend in a comparisson, see:
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:
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.
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.
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.
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.
Probably Zend Framework.
If you want something different try codeigniter.com
or it’s oo version in php5 www.kohanaphp.com
I have not used other frameworks, but I use Zend Framework and it is great. benefits are:
- clean and standard library, coding style, conventions, etc.
- enterprise support: it is supported by Zend, the company that every PHP programmer knows
- comprehensive manual, many blog posts and tutorials, at least 2 well written books
- has packages on most open source operating systems, so easy to install and maintain
- a very live open source project, updates come so soon you can’t keep up to them.
- open license: ZF uses BSD-like license so you won’t have many licensing issues
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.
Definitely Yii, we used it several times for the enterprise and were very satisfied with the result. I especially like its extensions like backvendor, coco, bootstrap.
For me Yii has been quite easy to learn and implement. Tried cake php but yii seems much clearer. Anyway whatever framework you use, you must continually improve your core language skills in parallel. This helps to take the maximum advantage of the framework that you`re using.