After a midterm thesis presentation, I had to re-consider the choice of web framework. Many people responded to my initial selection of Drupal, suggesting that Drupal has a huge learning curve. They were right. This week I spent some time going over tutorials for Drupal, and concluded that it indeed has a complex structure. So I started hunting for the alternative.

PHP/MySQL web framework comparison

PHP/MySQL web framework comparison. Source: http://www.phpit.net/demo/framework%20comparison/chart.php

Given that I want my framework to be based on PHP, I looked into major PHP-based applications including CakePHP, CodeIgniter, Symfony, and Zend. It seems that Cake and CodeIgniter(CI) are the two major players in the php framework battle.  Cake offers more automated and well-structured framework, while CI offers light-weight and flexible solution with a low learning curve. A web developer Paul Shen makes a good comparison between the two in his blog. A developer Ekerete makes a good point in his blog about the benefit of using CodeIgniter by comparing it to Zend. Another developer Jonathan Snook supports Cake in his blog. I went to Cake and CI’s websites, checked their basic MVC structures, and felt more comfortable with the documentation and tutorials for CI. So I may start with CI and see how it goes.

For a quick site development, there are online platforms for creating social networking sites, such as Ning and BigTent. If I want to focus on widgets or apps, there is OpenSocial. I created an account for Ning to see how they structure their platform. It’s an easy, one-click solution, but does not have enough flexibility for controlling UI and functions. I will come back to Ning if I end up screwing up my framework development, and need a quick fix to my project. OpenSocial may be an interesting platform to use if I want to add some widgets or add-on features to my site.