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. Los campos obligatorios están marcados con *