views:

54

answers:

4

I'm very new to php and I'm looking to build a community website. It should have support for user profiles, messaging, user photo gallery, authentication and profile comments. I've looked around and narrowed my options: 1-use a social networking package like elgg 2-use a php framework like cakePHP and add required functionality 3-start the whole thing from scratch

I appreciate any advice on the matter

Thanks

A: 

In my opinion, if you're learning, pick up one of the existing frameworks work with it, understand it and maybe try and roll your own. If you're trying to learn, look at what has come before. If your primary focus is to get a site up for people, then use an existing framework.

Hammerstein
A: 

A CMS sounds like your best bet as there is a good solid foundation in terms of code base and community support. Drupal/joomla/modx to name a few all have these types of functionalities and a whole lot more. Some comes out of the box and some in form of plugins.

Also you mentioned cakePHP, if you are interested have a look at symfony also. They are both great frameworks.

Chris
+1  A: 

Have you considered using an open source project like Mambo, Drupal, Joomla, etc. and contributing back to the community? There are many plugins / options for these applications. Anything you do not have you can build (much faster than starting from scratch) and contribute them back to the community at large. This may even be a faster option than building yet another CMS.

cdburgess
+1 for Drupal, it is a very good tool to build a community website
Yorirou
A: 

I've recently started building a community driven website in CakePHP. I found that once I'd thought about the features and design of the site (including back-end) cakephp made it incredibly easy to get started. It has a brilliant support community and "the bakery" gives some brilliant example of how to implement existing features.

When you can, don't re-invent the wheel, cakePHP has a rich set of helpers and plugins like authentication, commenting, tags/tagclouds, text editors, etc.

I've also heard good things about codeigniter

Hope this helps.

Jonesy

iamjonesy