CakePHP as a Blog Platform
Building a blog using CakePHP is pretty easy. Heck, there's even a basic tutorial to do such on the CakePHP web site. This blog runs off CakePHP and was slammed together pretty quickly. My site over at Snook.ca will one day soon also get switched over to CakePHP. It's really quite flexible and handy for a developer like myself to get something up and running quickly.
But can an application be built to rival something like WordPress?
In building my site, I've been pondering just that. How would I set up plug-ins? How would I set up templates, themes and so on? And the one key thing that strikes me is that what a customer needs out of a blog tool is not the same as how a CakePHP application is normally designed.
For us developers, it's all about getting the data to the view. But for the end user, it's all about bringing the data into the view. That might seem the same thing but I'll explain the difference. In CakePHP-speak, the controller is the central player. It (duh) controls things. Whereas, in blogger-speak, the view is the central player.
You need a top 5 to go on your page? Query the model, and pass the variables on to your view, then loop through the set to get the output that you need. But blog tools are designed for the non-technical. They want to add a little "add code here" bit in the template to know what needs to be going on. But doing so means that the view becomes ultimately responsible for deciding what data needs to be pulled in.
Building an application with CakePHP in this way certainly isn't hard to do. A combination of helpers, elements and components could abstract away much of the stuff a user shouldn't really see, leaving them with a clean syntax for pulling data into the template but is this late-stage content pull mechanism practical with CakePHP?