Programming

  minte9
LearnRemember



Create Framework / Http Foundation


Http

Web code is about interacting with HTTP.
 
/**
 * symfony/http-foundation - index.php
 * 
 * The request is represented by global variables ($_GET, $_POST)
 * The response is generated by functions (echo, header, setcookie)
 * This component replaces variables and functions with an OOP layer.
 * 
 * composer require symfony/http-foundation
 * 
 * php -S localhost:8000
 * http://localhost:8000/
 *      Hello World
 * http://localhost:8000/?name=Fabien
 *      Hello Fabien
 */

require_once __DIR__.'/vendor/autoload.php';

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

$request = Request::createFromGlobals(); // from PHP global variables
$name = $request->get('name', 'World');

$response = new Response(sprintf('Hello %s', 
    htmlspecialchars($name, ENT_QUOTES, 'UTF-8')
));

$response->send(); // Response object back to the client

Request

With this component you have all the request information.
 
/**
 * Request information - index2.php
 * 
 * php -S localhost:8000
 * http://localhost:8000/index2.php?name=Fabien
 */

require_once __DIR__.'/vendor/autoload.php';

use Symfony\Component\HttpFoundation\Request;

$request = Request::createFromGlobals();

echo $request->get('name', 'World'); // Fabien
echo $request->getPathInfo(); // URI - /
echo $request->request->get('bar'); // POST - null
echo $request->server->get('HTTP_HOST'); // localhost:8000
echo $request->headers->get('host'); // localhost:8000
echo $request->getMethod(); // GET

Response

With a HttpFoundation component you can simulate a response.
 
/**
 * Response simulation - index3.php
 * 
 * php -S localhost:8000
 * http://localhost:8000/index3.php
 */

require_once __DIR__.'/vendor/autoload.php';

use Symfony\Component\HttpFoundation\Response;

$response = new Response();
$response->setStatusCode(404);
$response->headers->set('Content-Type', 'text/html');
$response->setContent(
    "Page not found - " . $response->getStatusCode()
);

$response->send();
    // Page not found - 404





References