Drupal Vs CakePHP
Submitted by larry on Sat, 12/22/2007 - 16:57.
I haven't posted for a while here at DrupNewb.com, and this is mainly because I took a job where I'm working with CakePHP. Comparing CakePHP to Drupal is like comparing Avocados to Oranges, because they aren't exactly meant to be the same thing. CakePHP and Drupal are both written in PHP. Both can use a number of DBMSs, including MySQL.
CakePHP is a "framework", meaning it isn't designed to produce any particular kind of system, but it does provide a structure as well as an overall flow. CakePHP's structure is very MVC (Model-View-Controller). Right out of the box CakePHP doesn't do much. To add functionality to CakePHP you need to build out model, view, and controller parts following the CakePHP API and naming conventions. Because the model is integrated into the structure, you build new tables with the CakePHP naming conventions, set up your model following the CakePHP naming conventions, use the api for any data calls, and CakePHP writes all the SQL. You either find this fantastic or disappointing.
Drupal is a specialized CMS framework to designed build community websites, but to which you can add a wide variety of functionality. Right out of the box Drupal does provide a nice community website with extensive admin functionality. To add to Drupal you create modules and views which make use of Drupal's hook system, which like all frameworks need to follow certain naming conventions and use the API. I think Drupal is less strict with the naming conventions than CakePHP, and does not have the tight model binding. Drupal does have an extensive API to tie into the hooks, and has complex admin functionality which needs to be understood to properly run a Drupal based site.
Both the CakePHP (www.CakePHP.org) and Drupal (www.Drupal.org) have nice websites, with status and downloads of the core. Both have tons of user donated modules. I think the main Drupal site has better community functionality (such as forums), but perhaps I'm unaware of all CakePHP has. CakePHP does have a very active Google group (http://groups.google.com/group/cake-php).
Drupal is probably harder to install and configure, but you get a lot more functionality at the start. Drupal seems to me to be better for community based stuff, but if you are building a non-community based site - say something really unusual or simple - CakePHP might be better.
Also, the Mambo community is moving over to the CakePHP framework, which when done will give CakePHP a huge CMS system. I'm not sure when that is going to happen.
Here is a nice chart comparing every open source framework I've ever heard of: http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks
»
- larry's blog
- Login or register to post comments
