views:

646

answers:

5

There are several questions on SO about MVC and PHP. I already know the mvc frameworks that are out there like CodeIgniter, Cake PHP, Zend PHP, Agavi, etc., I played with most of them and feel that they are bit of hack but nevertheless good implementations of presentation abstractions. I need some advice from PHP experts and veterans on choosing a true MVC framework in PHP. One of the reasons I think these do not seem to be true to the MNV pattern is that I am inherently biased because of my background in Java (Spring MVC) and C#(ASP.NET MVC).

Please do not down vote this question without reading my supportive explanation for asking this question. Also, I do not want to stir up some debate but merely looking at suggestions and advice from others at SO

Thanks in advance,

+7  A: 

I would recommend Zend for a few reasons.

  • It's by the PHP Company. And the internal code is quality stuff.
  • The community is large
  • You can pick and chose parts of the framework you want to use
  • The documentation is huge and detailed
  • And it's in active development

For me (true MVC or not) this is the staple of what a good framework should be.

Ólafur Waage
Totally agree, plus it has a bag of magic tricks.
karim79
@karim, what magic tricks are you referring to?
CodeToGlory
@Olafur +1 for listing out some good reasons.
CodeToGlory
+1 Zend the only MVC framework for PHP that doesn't suck, that I have seen (though I have not checked out Agavi). I've been very unhappy with the quality of the others I've checked out, including CakePHP which I felt was very poorly written. If Zend isn't appropriate I'd suggest rolling your own (which is normally a dubious path, but in PHP this is much easier than in most other languages as so little boilerplate is required so I would contented is an entirely valid option).
Iain Collins
A: 

Zend Framework is great. It doesn't get in your way, which a lot of convention-over-configuration frameworks tend to do (at least sometimes, anyway).

karim79
A: 

I've had great experiences with Zend Framework

James C
A: 

Let me link my answer for similar question/topic here on StackOverflow.

It's about Agavi (you we're asking for some details about) - I tried there to express pure awesomeness of that framework.

Alan Bem
A: 

You should have a look at Symfony2 (currently in beta). In combination with Doctrine2 it enables domain driven design like no other php-framework available. You could use Doctrine2 with Zend Framework MVC also, but Symfony2 is more mature in my eyes and in contrast to Zend Framework components an easy to use and cohesive framework, whereas Zend Framework is more of a component repository, similar to the growing symfony components.

Thomas Schuster