зато это никак не решается в контроллере, где надо сделать ветвление логики:У нас это шаблонизатором решается:
{% for user in users %}
Ну это же нормально, нет?зато это никак не решается в контроллере, где надо сделать ветвление логики:
if ($model->loaded())
{
$view->set($model);
}
else
{
throw new HTTP_404();
}
if ($Request->type == 'json')
{
$this->view = new JsonView('views/template.json');
$this->view->set($model)->render();
}
else
{
$this->set($model);
}
$User = User::find($login);
View::render('template',['user'=>$User]);
и это
$this->view = new JsonView('views/template.json');
$this->view->set($model)->render();
function profile(User $user) {
return $user;
}



DI сам найдёт модель, диспетчер возьмёт из роутера ID и дёрнет метод find, после ретурна проверяется тип запроса (json, xml, html).
Зачем спрашивать и говорить, если можно молчать?


Суммирая все вышесказанное (+ Фаулер) пришел к тому же выводу, что дедушка - не всегда Tell, Don't Ask нужен.
Если взять пример из сабжа, то по Tell, Don't Ask логике должно быть как то так:
PHP:$model = DbQuery::makeModelFromData('ModelName',$criteria);
А почему не new ActiveRecord->query($dbobject, $queryobject);