сейчас пишу фронтенд для некой системы
роутер матчит урл и направляет все в несколько контроллеров
function indexAction( $data )
{
switch()
{
case 1: return $this->render( [ "article" => [..], "events" => [ ..] ] );
case 2: return $this->render( [ "article" => [..], "related_articles" => [ ..] ] );
case 3: return $this->render( [ "folder" => [..], "child_articles" => [ ..] ] );
}
}
ессно в проекте не switch а куча проверок, определение типа контента, определение конфигурации и т д
Т.е это анализ реквеста и извлечении данных ( это не просто Post как во всех гайдах по фрейворкам, в зависимости от запроса, конфига и еще нескольких факторов которые могут появится позже, извлекается article и events или articles и related_articles, кроме извлечения данные могут агрегироватся и т д )
как это сделать по уму?
у меня крутится в голове мысль направить все запросы в некий сервис который будет делать этот анализ и возвращать обьекты;
- simplePage
- twoColumnArticlePage
- twoColumnActiclePageWithEvents
- gridArticlePage
т.е return $twoColumnActiclePageWithEvents->render();
все эти классы наследуются от базового в который запихнуть twig
PS. это часть приложения будет только отображать контент. никаких других routes дергаюших контроллеры не будет