Skip to content

Comment on Symfony 2.0 is now availableparent

Comments

Sadly, Symfony/Symfony2 are not widely used enough. :/

(This may be a bit flippant, but seriously--there's not really a good reason to be using stuff like CakePHP, etc. in 2011.)

I may be in the process of updating a very neglected cakephp site. When I created the site, I had heard of Symfony but went with cakephp. I've not followed either framework for well over a year, so could you please give your reasons for Symfony and against cakephp?

CakePHP is fundamentally old. It does not avail itself of the capabilities offered in PHP5.3+ and persists in a number of outdated patterns that I consider detrimental to writing good, reusable, maintainable code. It is also incredibly slow, such that it is sort of the "gimme" for people wanting to write benchmarks to show how fast and awesome their new framework is.

Symfony2, on the other hand, is very well-designed (separating entirely from Symfony 1.3 to develop Symfony2 was a great decision), incredibly flexbile, and amazingly performant. It is, no exaggeration, the best PHP system I've ever seen, open-source or otherwise; unless you're Mr. Potencier, reading its code will make you a better PHP programmer. You can actually strip it down so far as to be just a microkernel + dispatch, which is what Silex[1] is. You can also built all manner of whatever-you-want on top of it. There's no real downside to using at least part of the Symfony2 ecosystem for any PHP project.

http://silex-project.org/

To my experience, Cake simply does not grow beyond their own blog tutorial.

Maybe they fixed this, but last time I used Cake, for instance, if you were overriding hooks in the Model to e.g. change the data as returned to the view/controller, you had to do this different depending on how the data was collected. So in the same hook method of the BananaPeer, you either got a single Banana, or an array of Banana objects, or an array with a key "Bananas" which had an array of Banana objects. There was no way to figure this out except with a lot of testing. There was no uniform way to implement standard features and constraints inside the model.

Cake was full of this kind of shit. It was, simply, horribly badly designed and to my impression only popular because its web site was pretty. The source code was horribly undocumented and the internal SQL query building process was a disaster.

Personally, I think that Cake was popular because it was one of the first frameworks out there. It's been surpassed by all sorts of folks (Symfony2 now chief among them).

I think that, next time someone asks me why Cake sucks, I'm just going to say "BananaPeer" over and over again.

Because bananas don't have peers.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.