<?php

namespace Shasoft\SamoyedCMG;

use 
Shasoft\SamoyedCMG\Service\IRequest;
use 
Symfony\Component\HttpFoundation\Response;

// Генерация ответа маршрута
trait AppRouteOnRequest
{
    
// Обработка запроса
    
static protected function onRequest(IRequest $request): Response
    
{
        
// Создать контроллер
        
$controller = new \Shasoft\SDemo\Controller\HomeController(\Shasoft\SamoyedCMG\AppRoute::getService(\Shasoft\STwig\ITwig::class));
        
// Выполнить метод контролера
        
$response $controller->run( );
        
// Если вернули null
        
if (is_null($response)) {
            
$response '<h3><abbr style="color:red" title="Контроллер вернул null">null</abbr></h3>';
        }
        
// Если ответ в виде строки
        
if (is_string($response)) {
            
// то преобразовать строку в HTTP ответ
            
$response = new Response($response);
            
$response->prepare($request->getSymfonyRequest());
        }
        
// Вернуть ответ
        
return $response;
    }
}