A friend of mine has been using CakePHP to solve some problems where he works lately, and has been asking me for some help here and there. I always love to help as much as I can, but lately I've found my advice when it comes to CakePHP to be less helpful than it was in the past.
Now, ask me about Drupal stuff and I can answer most questions that you could come up with (I think?), but that's because I use Drupal day-in and day-out, for both my job and the hobby stuff I do on the side. The side effect is that I find my skills using other technologies suffer since I don't flex those muscles as much. I even worry about some basic coding skills -- since Drupal manages so much of the application execution process, I don't have to worry about a lot of the more technical (cool) stuff.
This post is in reply to a comment on a previous article that I thought contained some good questions:
Saw your post on the cakePHP list regarding Drake, here http://groups.google.com/group/cake-php/browse_thread/thread/4d0ad8b73a5... .
I'm hoping you won't mind answering a couple of questions.
In particular, I am concerned with the performance hit of running a framework within a framework, and all the associated redundancies. Was performance something you looked at in any detail?
How much harder is it to work with Drupal's API from within cake than it is to write a native drupal module?
Did you feel the benefits of using cake overcame the increased complexity of having to bridge using drake?
CakePHP uses the Model-View-Controller (MVC) concept as a framework to encapsulate the three basic layers of an application. Models, the component of the MVC framework that connect the application to the data, are especially good at describing relational databases. One of the questions that seems to come up alot on the CakePHP Group in one form or another, is what the practical difference is between the various relationship types (or associations) that CakePHP models can implement. I'll try to explain what's helped me keep them straight...
I've been using CakePHP 1.2.x for projects at work, where our primary database back-end is Microsoft SQL Server. Maybe I'm just missing something, but it seems to me that SQL Server outputs datetime values in an odd way (by odd, I mean not parsable by strtotime). When pulling datetime values out of SQL Server, CakePHP will render them as PHP strings just as they are returned from the server, in this format:
Jan 10 2008 12:25:07:000PM
Now, strtotime parses incoming values according to GNU Date Input Format, which is incompatible with the output from SQL Server (note the milliseconds). To make life easier when working woth models that describe MSSQL tables with datetime fields, using this behavior can make things a little easier.
At work a few months ago, I was directed to started looking into some options for developing small database applications. So, I set out on my quest to find the best solution out there. Several weeks, and at least as many frameworks later, I finally found a solution that seems to work.