Why We Use CakePHP for Our Web Applications
I am on my way back from Chicago where I attended CakeFest, an annual conference for CakePHP web developers. I can go into depth about the great experiences I had this weekend. But instead, I'd like to divulge a bit about CakePHP itself. This article is definitely for the more tech-focused crowd, so if that's not you, prepare for utter confusion or indulge in a different post of mine.
What is CakePHP?
CakePHP is an MVC framework that sits on top of PHP. It was originally developed a few years ago, in response to a lot of positive buzz about the Rails framework for Ruby. In essence, CakePHP is a logical evolution of the PHP language itself, in much the same way iRobots are progress for vacuums; without the help of either, you need to be utterly OCD and have far too much time on your hands in order to keep a bigcode base or house as clean as you'd like. CakePHP helps keep your code implicitly "clean" without much effort. It does this by forcing you to separate your data saves & retrievals, business logic and views/themes into distinct areas of the code, all of which communicate with each other in structured ways. If you've ever written incoherent code that ends up looking like "spaghetti" (come on, fess up), then you can quickly begin to appreciate why MVC and CakePHP are welcome changes to the process.
Why do we use CakePHP?
Here we are in 2010. There are a few other notable PHP frameworks avail ble. And in order to write MVC code, you can just, well, write MVC code. There's no need to use "somebody else's" framework. So what's the motivation behind doing so?
This is a simple one for us. CakePHP is the right decision in much the same way PHP is our clear choice over many other languages/conventions; it's extremely easy to use, it's 100% open source, and it offers a huge community of developers that we can interface with at any given time.
There are massive amounts of "plug-in" code available. Whether we need to interface with Google Analytics or upload images to Amazon S3, there is probably already someone in the Cake community who has done it first. And that saves us heaps of time and frustration. And if we need to home-brew some code, we can still bet on the fact that some core components of the framework will inevitably help us to do that with swiftness and ease.
In addition, because of the open source nature of the project, upgrades/enhancements are frequent. Any issues you come across are often fixed without your input in a matter of weeks/months, and those that are not, you can fix yourself and help give back to the community in the process.
Bottom Line
Nobody likes reinventing the wheel. And while you can write or use a more proprietary MVC system, nothing beats the ease, extensibility, and constantly improving nature of the CakePHP framework. They call it the rapid development framework for a reason. And by doing so, they're not-so-subtly implying that by doing it any other way, there's a good chance you may be wasting time.