Просмотр поста

.
reaper

Delphinum, Ну мне это мало интересно

Предлагаю сделать вот какую штуку, если не сложно будет и впишется в существующий код.
Контроллёры возвращают только данные (массивы, числа, строки).
То, как будет формироваться представление, должно конфигурироваться отдельно. В роутах например.

Т.е. имеем, к примеру, контроллёр:

public function profile(Requst $request) {
     $uid = $request->request->get('uid', null);
     return $this->repo->find($uid)->to_array();
}

В конфиге пишем:
return [
    'routes' => [
        'users.profile' => [
             'path' => '/users/{uid}/profile',
             'handler' => 'users:profile',
             'renderer' => 'html:profile.tmpl'
        ],
        'api.users.profile' => [
             'path' => '/api/v1/users/{uid}/profile',
             'handler' => 'users:profile',
             'renderer' => 'json'
        ]
    ]
];


Как-то так. Вообще здесь куча подводных камней, но идея, на мой взгляд, имеет право на существование.