Notice :  fwrite(): Write of 344 bytes failed with errno=28 No space left on device in /srv/app/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php  on line 159  
 
Notice :  fwrite(): Write of 352 bytes failed with errno=28 No space left on device in /srv/app/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php  on line 159  
 
Notice :  fwrite(): Write of 507 bytes failed with errno=28 No space left on device in /srv/app/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php  on line 159  
    
         
         
         
        Symfony Profiler 
         
            
    
    
        
            
        
                
            
                
                    vendor/symfony/framework-bundle/Controller/RedirectController.php line 110  
                    
                                                    <?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  Symfony\Bundle\FrameworkBundle\Controller ;  
 
use  Symfony\Component\HttpFoundation\HeaderUtils ;  
use  Symfony\Component\HttpFoundation\RedirectResponse ;  
use  Symfony\Component\HttpFoundation\Request ;  
use  Symfony\Component\HttpFoundation\Response ;  
use  Symfony\Component\HttpKernel\Exception\HttpException ;  
use  Symfony\Component\Routing\Generator\UrlGeneratorInterface ;  
 
/**  
 * Redirects a request to another URL.  
 *  
 * @author Fabien Potencier <fabien@symfony.com>  
 *  
 * @final  
 */  
class  RedirectController  
{  
    private ? UrlGeneratorInterface $router ;  
    private ? int $httpPort ;  
    private ? int $httpsPort ;  
 
    public function  __construct ( UrlGeneratorInterface $router  =  null ,  int $httpPort  =  null ,  int $httpsPort  =  null )  
    {  
         $this -> router  =  $router ;  
         $this -> httpPort  =  $httpPort ;  
         $this -> httpsPort  =  $httpsPort ;  
    }  
 
     /**  
     * Redirects to another route with the given name.  
     *  
     * The response status code is 302 if the permanent parameter is false (default),  
     * and 301 if the redirection is permanent.  
     *  
     * In case the route name is empty, the status code will be 404 when permanent is false  
     * and 410 otherwise.  
     *  
     * @param string     $route             The route name to redirect to  
     * @param bool       $permanent         Whether the redirection is permanent  
     * @param bool|array $ignoreAttributes  Whether to ignore attributes or an array of attributes to ignore  
     * @param bool       $keepRequestMethod Whether redirect action should keep HTTP request method  
     *  
     * @throws HttpException In case the route name is empty  
     */  
     public function  redirectAction ( Request $request ,  string $route ,  bool $permanent  =  false ,  bool |array  $ignoreAttributes  =  false ,  bool $keepRequestMethod  =  false ,  bool $keepQueryParams  =  false ):  Response  
     {  
        if ( ''  ==  $route ) {  
            throw new  HttpException ( $permanent  ?  410  :  404 );  
        }  
 
         $attributes  = [];  
        if ( false  ===  $ignoreAttributes  ||  \is_array ( $ignoreAttributes )) {  
             $attributes  =  $request -> attributes -> get ( '_route_params' );  
 
            if ( $keepQueryParams ) {  
                if ( $query  =  $request -> server -> get ( 'QUERY_STRING' )) {  
                     $query  =  HeaderUtils :: parseQuery ( $query );  
                } else {  
                     $query  =  $request -> query -> all ();  
                }  
 
                 $attributes  =  array_merge ( $query ,  $attributes );  
            }  
 
            unset( $attributes [ 'route' ],  $attributes [ 'permanent' ],  $attributes [ 'ignoreAttributes' ],  $attributes [ 'keepRequestMethod' ],  $attributes [ 'keepQueryParams' ]);  
            if ( $ignoreAttributes ) {  
                 $attributes  =  array_diff_key ( $attributes ,  array_flip ( $ignoreAttributes ));  
            }  
        }  
 
        if ( $keepRequestMethod ) {  
             $statusCode  =  $permanent  ?  308  :  307 ;  
        } else {  
             $statusCode  =  $permanent  ?  301  :  302 ;  
        }  
 
        return new  RedirectResponse ( $this -> router -> generate ( $route ,  $attributes ,  UrlGeneratorInterface :: ABSOLUTE_URL ),  $statusCode );  
    }  
 
     /**  
     * Redirects to a URL.  
     *  
     * The response status code is 302 if the permanent parameter is false (default),  
     * and 301 if the redirection is permanent.  
     *  
     * In case the path is empty, the status code will be 404 when permanent is false  
     * and 410 otherwise.  
     *  
     * @param string      $path              The absolute path or URL to redirect to  
     * @param bool        $permanent         Whether the redirect is permanent or not  
     * @param string|null $scheme            The URL scheme (null to keep the current one)  
     * @param int|null    $httpPort          The HTTP port (null to keep the current one for the same scheme or the default configured port)  
     * @param int|null    $httpsPort         The HTTPS port (null to keep the current one for the same scheme or the default configured port)  
     * @param bool        $keepRequestMethod Whether redirect action should keep HTTP request method  
     *  
     * @throws HttpException In case the path is empty  
     */  
     public function  urlRedirectAction ( Request $request ,  string $path ,  bool $permanent  =  false ,  string $scheme  =  null ,  int $httpPort  =  null ,  int $httpsPort  =  null ,  bool $keepRequestMethod  =  false ):  Response  
     {  
        if ( ''  ==  $path ) {  
            throw new  HttpException ( $permanent  ?  410  :  404 );  
        }  
 
        if ( $keepRequestMethod ) {  
             $statusCode  =  $permanent  ?  308  :  307 ;  
        } else {  
             $statusCode  =  $permanent  ?  301  :  302 ;  
        }  
 
         // redirect if the path is a full URL  
         if ( parse_url ( $path ,  \PHP_URL_SCHEME )) {  
            return new  RedirectResponse ( $path ,  $statusCode );  
        }  
 
         $scheme  ??=  $request -> getScheme ();  
 
        if ( $qs  =  $request -> server -> get ( 'QUERY_STRING' ) ?:  $request -> getQueryString ()) {  
            if (! str_contains ( $path ,  '?' )) {  
                 $qs  =  '?' . $qs ;  
            } else {  
                 $qs  =  '&' . $qs ;  
            }  
        }  
 
         $port  =  '' ;  
        if ( 'http'  ===  $scheme ) {  
            if ( null  ===  $httpPort ) {  
                if ( 'http'  ===  $request -> getScheme ()) {  
                     $httpPort  =  $request -> getPort ();  
                } else {  
                     $httpPort  =  $this -> httpPort ;  
                }  
            }  
 
            if ( null  !==  $httpPort  &&  80  !=  $httpPort ) {  
                 $port  =  ": $httpPort " ;  
            }  
        } elseif ( 'https'  ===  $scheme ) {  
            if ( null  ===  $httpsPort ) {  
                if ( 'https'  ===  $request -> getScheme ()) {  
                     $httpsPort  =  $request -> getPort ();  
                } else {  
                     $httpsPort  =  $this -> httpsPort ;  
                }  
            }  
 
            if ( null  !==  $httpsPort  &&  443  !=  $httpsPort ) {  
                 $port  =  ": $httpsPort " ;  
            }  
        }  
 
         $url  =  $scheme . '://' . $request -> getHost (). $port . $request -> getBaseUrl (). $path . $qs ;  
 
        return new  RedirectResponse ( $url ,  $statusCode );  
    }  
 
    public function  __invoke ( Request $request ):  Response  
     {  
         $p  =  $request -> attributes -> get ( '_route_params' , []);  
 
        if ( \array_key_exists ( 'route' ,  $p )) {  
            if ( \array_key_exists ( 'path' ,  $p )) {  
                throw new  \RuntimeException ( sprintf ( 'Ambiguous redirection settings, use the "path" or "route" parameter, not both: "%s" and "%s" found respectively in "%s" routing configuration.' ,  $p [ 'path' ],  $p [ 'route' ],  $request -> attributes -> get ( '_route' )));  
            }  
 
            return  $this -> redirectAction ( $request ,  $p [ 'route' ],  $p [ 'permanent' ] ??  false ,  $p [ 'ignoreAttributes' ] ??  false ,  $p [ 'keepRequestMethod' ] ??  false ,  $p [ 'keepQueryParams' ] ??  false );  
        }  
 
        if ( \array_key_exists ( 'path' ,  $p )) {  
            return  $this -> urlRedirectAction ( $request ,  $p [ 'path' ],  $p [ 'permanent' ] ??  false ,  $p [ 'scheme' ] ??  null ,  $p [ 'httpPort' ] ??  null ,  $p [ 'httpsPort' ] ??  null ,  $p [ 'keepRequestMethod' ] ??  false );  
        }  
 
        throw new  \RuntimeException ( sprintf ( 'The parameter "path" or "route" is required to configure the redirect action in "%s" routing configuration.' ,  $request -> attributes -> get ( '_route' )));  
    }  
}