The SitePoint Forums have moved.

You can now find them here.
This forum is now closed to new posts, but you can browse existing content.
You can find out more information about the move and how to open a new account (if necessary) here.
If you get stuck you can get support by emailing forums@sitepoint.com

If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

suggestion for php framework

Hi,

i am not new to php. using it for about four to five months and have now pretty good idea of it. now i want to goto php framework side but don't have any idea that which one is best for beginners to learn.

I used codeigniter for some projects,I tried Kohana also I thing it has some better things as for example the form validation and the Addons (and maybe php 5 OOP) but maybe it has not some libraries that CI has.
Now I am learning Yii framerwork, as I see it worth the attention and for my opinion has some better things than CI as Active record, form validation etc.
Also has the yiic tool etc.Some tests found it faster.
Of cource the code of the programmer is important

I would recommend CakePHP or CodeIgniter for a beginner. Correct me if I am wrong, but don't you have to run commands on Symfony to make changes in a production environment? For more of a real OOP Zend is the way to go unless you want to make your own framework.

Correct me if I am wrong, but don't you have to run commands on Symfony to make changes in a production environment?

Only because Symfony is being more efficient than other frameworks. On first run it parses all your configuration files into minimal, more efficient native PHP code that can be include()'d, and scans for classes in the directory tree for autoloading.

If you change configuration in the production environment, you have to refresh the cache. You don't have to run a command to do it either, that's just for convenience, you could just delete the contents of the cache directory.

Only because Symfony is being more efficient than other frameworks. On first run it parses all your configuration files into minimal, more efficient native PHP code that can be include()'d, and scans for classes in the directory tree for autoloading.

If you change configuration in the production environment, you have to refresh the cache. You don't have to run a command to do it either, that's just for convenience, you could just delete the contents of the cache directory.

Interesting I will have to learn more about it. The cache clearing cleared up a bunch of my perceptions about it.

My suggestion would be CakePHP considering you are not familiar with OOP. Even though Cake is still built in an OO manner, it provides strict rules on naming conventions, file placements, etc that framework "newbies" tend to find so overwhelming when first starting out. Cake's documentation is great as well as having a pretty active, open community.

Personally, I love Zend - I didnt always feel that way about it, after coming from Cake, there quiet a few things different between the two. In many cases, I feel like the flexibility that Zend gives me almost always trumps Cake's out of the box speed and ease especially when its a complex project that may or may not always need to follow Cake's conventions to a T. Zend really makes no assumptions on how you want to build things which makes it a great framework for seasoned developers, but most often times, terrible for new programmers who work themselves into corners. Also, if at some point, you do pick up Zend, really consider dumping Zend_Db and using Doctrine as your de-facto model layer.

The learning curve is maybe steeper than something like CodeIgniter, but if at some point you are going to be attempting more complex projects then you'd probably end up having to "unlearn" CI and learning symfony (a friend of mine recently did just that). I've been using it since v1.0 and it's my framework of choice. I recommend Doctrine as the ORM though, rather than Propel.

Have a look at the introductory tutorials and the "Jobeet" project and see what you think. You can download a "sandbox" version of the framework to have a play with.