I have been working through both the symfony JobBeet tutorial and cakePHP’s blog tut. Both are basic CRUD apps. Here’s my considered opinion of both.

Symfony is by far the more sophisticated of the two. The class system, ORM integration and YAML configuration really put this framework on par with any written in any other language. It’s truly enterprise ready. However, it is simply a beast to learn. Installation virtually requires using an apache virtual host. Creating a skeleton app is easy, but non-intuitive. Just to create and process a simple HTML, you end up touching about 4 or so files in as many directories. Also, there is a heavy reliance on the PHP CLI, which can be an issue if your installation has different versions of php for the shell and apache (which the Mac does). While I can get the JobBeet tutorial going, I cannot get much further — and I have two of the three books from the developers.

CakePHP is a lot simpler, if less ambitious, than symfony. It appears to be pretty lightweight and has no CLI dependency (although there is a lot of automation that is offered by the cake client). The relationship between the model, controller and view is pretty easily grasped. To create a form for an existing model, you’re looking at editing two files in two closely related directories.

If you’re looking for a solid MVC framework in PHP, you could do a lot worse than cakePHP.