How skinny should controllers be, how fat should models be in CakePHP? I know it's a good idea to put all data-related logic in your models in CakePHP, but what would you say about keeping every Model::find() and its particular params in the model? Is this good practice, or just taking things too far?

For example, is this:

PostsController:

function index() {
    $posts = $this-&gt;Post-&gt;getLatest();
    $this-&gt;set(compact('posts'));
}


Post model:

function getLatest() {
    $params = array(
        'conditions' =&gt; array('published' =&gt; 1),
        'limit' =&gt; 5,
        'order' =&gt; 'publish_date DESC'
    );
    return $this-&gt;find('all', $params);
}


Better than this:

PostsController:

function index() {
    $params = array(
        'conditions' =&gt; array('published' =&gt; 1),
        'limit' =&gt; 5,
        'order' =&gt; 'publish_date DESC'
    );
    $posts = $this-&gt;Post-&gt;find('all', $params);
    $this-&gt;set(compact('posts'));
}


Any thoughts? Which is better architecturally?
It's totally egilable to write shorthand-find functions. This way the controller is not depended of the model's parameters. I tend to go that far, that I don't use any fields directly in my controllers (and thus, not using find in controllers at all).
You could save a variable by defining the array in your find-call aswell ;).