Novedades Slim Framework 3.0

Novedades Slim Framework 3.0

Novedades Slim Framework 3.0

Desde hace ya tiempo Slim Framework actualizo la versión 2.6.2 a la 3.0 con muchos cambios, de los cuales podemos destacar:

  • Requiere PHP 5.5+
  • Inyección de dependencias en el contenedor.
  • Ahora se usa FastRoute para gestionar las rutas.
  • Uso de PSR-7 (inyección de interface Request – Response).
  • Obtener variables_GET y _POST.
  • Se elimina HTTP Cache (ahora es un módulo independiente).
  • Se elimina Stop/Halt.
  • Y un largo etc de cambios.

Veamos algunos ejemplos (obtenido desde la propia documentación)

 

Nuevo router

$app->get('/', function (Request $req,  Response $res, $args = []) {
    return $res->withStatus(400)->write('Bad Request');
});

En este ejemplo en el router se le pasa una función anónima con 3 parámetros Request, Response y args.
Si nos fijamos vemos que se inyecta Request y Response (interface) gracias a PSR-7
Luego retornamos el objeto $res con estado 400 y el texto ‘Bad Request’

 

Obtener variables_GET y _POST

$app->get('/', function (Request $req,  Response $res, $args = []) {
    $myvar1 = $req->getParam('myvar'); //checks both _GET and _POST [NOT PSR-7 Compliant]
    $myvar2 = $req->getParsedBody()['myvar']; //checks _POST  [IS PSR-7 compliant]
    $myvar3 = $req->getQueryParams()['myvar']; //checks _GET [IS PSR-7 compliant]
});

En esta línea buscamos en el método GET o POST (no cumple el estándar PSR-7) el parámetro myvar

 
$myvar1 = $req->getParam('myvar');

En esta línea buscamos a través del método POST (cumple con el estándar PSR-7) el parámetro myvar

 
$myvar2 = $req->getParsedBody()['myvar'];

En esta línea buscamos a través del método GET (cumple con el estándar PSR-7) el parámetro myvar

 
$myvar3 = $req->getQueryParams()['myvar'];

De esta forma podemos obtener los valores desde el Request más información aquí

 

Cambio en el redirector

En la versión 2.x uno podía usar el helper $app->redirect() cuando queríamos realizar una redirección, ahora con la versión 3.0 hacemos uso del objeto request para realizar la redirección.

$app->get('/', function ($req, $res, $args) {
  return $res->withStatus(302)->withHeader('Location', 'your-new-uri');
});

 

Cambia urlFor() por pathFor() en el router

$app->get('/', function ($request, $response, $args) {
    $url = $this->router->pathFor('home');
    $response->write("<a href='$url'>Home</a>");
    return $response;
})->setName('home');

En este ejemplo a través de $this->router llamamos al método pathFor pasando el nombre de asignado a nuestra ruta, en el ejemplo vemos un setName(‘home’)

 

Existen muchos más cambios que podéis ver aquí
 
 

Deja un comentario

Tu dirección de correo electrónico no será publicada.