The web development world is buzzing about Web 2.0. Everybody’s got their own spin and every day there seem to be new ideological skirmishes going on about whether Web 2.0 is a significant paradigm shift or just hype.
A couple of technologies that are “hot” right now are AJAX and Ruby on Rails. I’ll let you read about AJAX and RoR on your own time. So, what does this have to do with Cake?
It started when I was checking out RoR. I took the time to learn a little about Ruby (the language used in RoR) as well as the framework. Ruby reminded me of Smalltalk (we’re going back about 15 years in my memory now!) but what I really liked was the simplicity of the framework. I have lots of MVC experience with Jakarta/Struts but building a Rails app seemed so much simpler. When I tried getting it to work on my web server I found out that Rails requires FastCGI to work with Apache and that it is really best to use lighttpd instead of Apache. I didn’t want to jeopardize the other sites running on my box so I got an account at TextDrive since they have good Rails support. So, what does this have to do with Cake?
My customer didn’t think it was a good idea to experiment with Rails on his project (a valid concern). Since he wanted to stick with PHP I started revisiting MVC frameworks in PHP. I found several Struts ports and mostly huge overcomplicated bloatware. But then I found Cake.
From the Cake PHP Web Site:
“Cake is a rapid development framework for PHP which uses commonly known design patterns like ActiveRecord, Association Data Mapping, Front Controller and MVC. Our primary goal is to provide a structured framework that enables PHP users at all levels to rapidly develop robust web applications, without any loss to flexibility.”
The reason I orginally found Cake is because the project used to say that it was “inspired by” Ruby on Rails. As I have been monitoring the development of the project the dev team has felt strongly to keep Cake PHP-like and just use some of the good patterns from Rails. Anyway, I have found Cake to be a great starting point for my projects that require more custom programming. I have been able to add in my own libraries for user registration, authentication, image uploading and manipulation and content management.
Cake has a very active development community which will be necessary to make the project a success. Recent releases of Cake have provided a cleaner project structure and easier ways to extend the framework without having to use Digital Duct Tape.