Вход Регистрация
Файл: vendor/symfony/http-kernel/Controller/ErrorController.php
Строк: 125
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentHttpKernelController;

use 
SymfonyComponentErrorHandlerErrorRendererErrorRendererInterface;
use 
SymfonyComponentHttpFoundationRequest;
use 
SymfonyComponentHttpFoundationResponse;
use 
SymfonyComponentHttpKernelExceptionHttpException;
use 
SymfonyComponentHttpKernelHttpKernelInterface;

/**
 * Renders error or exception pages from a given FlattenException.
 *
 * @author Yonel Ceruto <yonelceruto@gmail.com>
 * @author Matthias Pigulla <mp@webfactory.de>
 */
class ErrorController
{
    private 
HttpKernelInterface $kernel;
    private 
string|object|array|null $controller;
    private 
ErrorRendererInterface $errorRenderer;

    public function 
__construct(HttpKernelInterface $kernelstring|object|array|null $controllerErrorRendererInterface $errorRenderer)
    {
        
$this->kernel $kernel;
        
$this->controller $controller;
        
$this->errorRenderer $errorRenderer;
    }

    public function 
__invoke(Throwable $exception): Response
    
{
        
$exception $this->errorRenderer->render($exception);

        return new 
Response($exception->getAsString(), $exception->getStatusCode(), $exception->getHeaders());
    }

    public function 
preview(Request $requestint $code): Response
    
{
        
/*
         * This Request mimics the parameters set by
         * SymfonyComponentHttpKernelEventListenerErrorListener::duplicateRequest, with
         * the additional "showException" flag.
         */
        
$subRequest $request->duplicate(nullnull, [
            
'_controller' => $this->controller,
            
'exception' => new HttpException($code'This is a sample exception.'),
            
'logger' => null,
            
'showException' => false,
        ]);

        return 
$this->kernel->handle($subRequestHttpKernelInterface::SUB_REQUEST);
    }
}
Онлайн: 1
Реклама