Wow, a lot of replies. I guess it's to be expected: we haven't had many MVC threads for a while.
I don't think you have Fowler right. I don't think your description of Cake is right from my experience of the code, but if that is their naming the it is wrong.
So... my understanding of MVC is wrong, and my understanding of CakePHP's model is wrong, but I was correct to object to the naming of database access as a model. Hmm... I'm really clueless. ^_^"
That is not confusing MVC because the dependencies are all still correct -- the Datasource only know about itself, the Model know about the Datasource, and the Controller know about both.
I was under the impression that depending on the implementation, the datasource may or may not know about the model, and the model may or may not know about the datasource. For example, the Data Mapper pattern is all about having the datasource know about the model, but have the model not know about the datasource. Of course, there's different ways to go about this that shift the dependencies.
1. Model -- Domain logic that makes Datasources useful
2. View -- Display logic creates the Response
3. Controller -- Program Flow logic that undertands and manages the Request
I had an "Aha!" moment just right now. I've been dwelling on Fowler's comment that "Whatever the merits of an Application Controller, it's a very different beast from an MVC controller." and realized that he was talking about
only the Application Controller and not necessarily the Page/Front controllers. I then reread his earlier comments about what the controller does: "The controller takes user input, manipulates the model, and causes the view to update appropriately." In a PHP context (without AJAX), only the first two points are relevant, but oh are they so important!
Although, it leaves me wondering what the difference between a Transaction Script and a Controller is. And whether or not a PHP page is a degenerate controller.
(I think this pretty much sums up my sentiments about the rest of the comments too).
Cake is great!!! I'll leave it at this.
It doesn't have authentication though. T_T