Peticiones HTTP con HTTPFoundation

El componente HTTPFoundation de Symfony define una capa orientad a objetos para las especificaciones HTTP, en PHP las solicitudes HTTP están representadas por algunas variables globales ($_GET, $_POST,$_FILES, $_COOKIE, $_SESSION,...) y la respuesta es generada por algunas funciones como (echo, header, setcookie, ...)

Éste componente reemplaza todas las variables y funciones globales PHP para manipular las especificaciones HTTP predeterminadas por una capa orientada a objetos, se recomienda encarecidamente utilizar HTTPFoundation en vez de las definiciones por defecto de PHP a la hora de trabajar con peticiones HTTP.

Objeto $http

El objeto $http es definido en Ocrend/Kernel/Config/Start, representa un contenedor para las peticiones $_GET, $_POST, $_COOKIE, $_FILES y $_SERVER

La forma correcta de acceder a él, desde cualquier controlador o modelo es haciendo una llamada global dentro del método que lo necesite.

global $http;

Accediendo a las solicitudes

Se presenta una tabla de equivalencias.

PHP Equivalente HTTPFoundation
$_GET['elemento'] $http->query->get('elemento') devuelve NULL si no existe 'elemento'
$_GET['elemento'] = 'Nuevo Valor' $http->query->set('elemento','Nuevo Valor')
unset($_GET['elemento]) $http->query->remove('elemento')
$_POST['elemento'] $http->request->get('elemento') devuelve NULL si no existe 'elemento'
$_POST['elemento'] = 'Nuevo Valor' $http->request->set('elemento','Nuevo Valor')
unset($_POST['elemento]) $http->request->remove('elemento')
$_COOKIE['elemento'] $http->cookies->get('elemento') devuelve NULL si no existe 'elemento'
setcookie('elemento', 'Nuevo Valor'); $http->cookies->set('elemento','Nuevo Valor')
unset($_COOKIE['elemento]) $http->cookies->remove('elemento')
$_SERVER['SERVER_NAME'] $http->server->get('SERVER_NAME')
$_SERVER['HTTP_CONTENT_TYPE'] $http->headers->get('Content-Type')
$file = $_FILES['archivo'] $file = $http->files->get('archivo') devuelve NULL si no se ha subido 'archivo'
$file['size'] $file->getClientSize()
$file['name'] $file->getClientOriginalName()
end(explode('.', $file['name'])) extensión del archivo $file->getClientOriginalExtension()
move_uploaded_file(...) guardar archivo $file->move('ruta/', $file->getClientOriginalName());

Objeto $session

El objeto $session es definido en Ocrend/Kernel/Config/Start, representa un objeto para manejar todas las sesiones dentro del sistema.

La forma correcta de acceder a ellas, desde cualquier controlador o modelo es haciendo una llamada global dentro del método que lo necesite.

global $session;

NOTA: el tiempo de vida de las sesiones depende del parámetro sessions/life_time en Ocrend.ini.yml

Accediendo a las sesiones

Se presenta una tabla de equivalencias.

PHP Equivalente HTTPFoundation
$_SESSION['elemento'] $session->get('elemento') devuelve NULL si no existe 'elemento'
$_SESSION['elemento'] = 'Nuevo Valor' $session->set('elemento','Nuevo Valor')
unset($_SESSION['elemento']) $session->remove('elemento')

Más información acerca de HTTPFoundation

En las siguientes páginas existe más información detallada acerca del componente HTTPFoundation de Symfony

Http: https://symfony.com/doc/current/components/http_foundation.html

Sesiones: https://symfony.com/doc/current/components/http_foundation/sessions.html