Deprecated : Constant E_STRICT is deprecated in /home/pastorz/old-espace-client/vendor/symfony/error-handler/ErrorHandler.php on line 58
Deprecated : Constant E_STRICT is deprecated in /home/pastorz/old-espace-client/vendor/symfony/error-handler/ErrorHandler.php on line 76
Symfony Profiler
<?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\Component\Form\Extension\HttpFoundation ;
use Symfony\Component\Form\Exception\UnexpectedTypeException ;
use Symfony\Component\Form\FormError ;
use Symfony\Component\Form\FormInterface ;
use Symfony\Component\Form\RequestHandlerInterface ;
use Symfony\Component\Form\Util\FormUtil ;
use Symfony\Component\Form\Util\ServerParams ;
use Symfony\Component\HttpFoundation\File\File ;
use Symfony\Component\HttpFoundation\File\UploadedFile ;
use Symfony\Component\HttpFoundation\Request ;
/**
* A request processor using the {@link Request} class of the HttpFoundation
* component.
*
* @author Bernhard Schussek <bschussek@gmail.com>
*/
class HttpFoundationRequestHandler implements RequestHandlerInterface
{
private $serverParams ;
public function __construct ( ServerParams $serverParams = null )
{
$this -> serverParams = $serverParams ?? new ServerParams ();
}
/**
* {@inheritdoc}
*/
public function handleRequest ( FormInterface $form , $request = null )
{
if (!$request instanceof Request ) {
throw new UnexpectedTypeException ( $request , 'Symfony\Component\HttpFoundation\Request' );
}
$name = $form -> getName ();
$method = $form -> getConfig ()-> getMethod ();
if ($method !== $request -> getMethod ()) {
return;
}
// For request methods that must not have a request body we fetch data
// from the query string. Otherwise we look for data in the request body.
if ( 'GET' === $method || 'HEAD' === $method || 'TRACE' === $method ) {
if ('' === $name ) {
$data = $request -> query -> all ();
} else {
// Don't submit GET requests if the form's name does not exist
// in the request
if (! $request -> query -> has ( $name )) {
return;
}
$data = $request -> query -> all ()[ $name ];
}
} else {
// Mark the form with an error if the uploaded size was too large
// This is done here and not in FormValidator because $_POST is
// empty when that error occurs. Hence the form is never submitted.
if ( $this -> serverParams -> hasPostMaxSizeBeenExceeded ()) {
// Submit the form, but don't clear the default values
$form -> submit ( null , false );
$form -> addError (new FormError (
$form -> getConfig ()-> getOption ( 'upload_max_size_message' )(),
null ,
['{{ max }}' => $this -> serverParams -> getNormalizedIniPostMaxSize ()]
));
return;
}
if ('' === $name ) {
$params = $request -> request -> all ();
$files = $request -> files -> all ();
} elseif ($request -> request -> has ( $name ) || $request -> files -> has ( $name )) {
$default = $form -> getConfig ()-> getCompound () ? [] : null ;
$params = $request -> request -> all ()[ $name ] ?? $default ;
$files = $request -> files -> get ( $name , $default );
} else {
// Don't submit the form if it is not present in the request
return;
}
if (\is_array ( $params ) && \is_array ( $files )) {
$data = FormUtil :: mergeParamsAndFiles ( $params , $files );
} else {
$data = $params ?: $files ;
}
}
// Don't auto-submit the form unless at least one field is present.
if ( '' === $name && \count ( array_intersect_key ( $data , $form -> all ())) <= 0 ) {
return;
}
$form -> submit ( $data , 'PATCH' !== $method );
}
/**
* {@inheritdoc}
*/
public function isFileUpload ( $data )
{
return $data instanceof File ;
}
/**
* @return int|null
*/
public function getUploadFileError ( $data )
{
if (!$data instanceof UploadedFile || $data -> isValid ()) {
return null ;
}
return $data -> getError ();
}
}