Laravel 5.2

Novedades de Laravel 5.2

Laravel 5.2 ya está aquí y trae muchas novedades. Aquí os pongo un resumen de las novedades más destacadas que sin duda nos ayudarán a mejorar este excelente framework:

Novedades de Laravel 5.2

Agrupar los Middleware

Para el que aún no sepa lo que es un Middleware, es un filtro para la petición, de tal manera que siempre que se llame a un conjunto de rutas, este código se ejecutará antes o después del código que figure en nuestro controlador.

Hasta ahora, cuando queríamos asignar varios Middleware a un conjunto de rutas, lo teníamos que hacer enumerando uno a uno. A partir de Laravel 5.2, podremos hacerlo creando grupos de Middleware. Laravel viene con dos grupos por defecto definidos en el Kernel de HTTP, que son los siguientes:

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
    ],

    'api' => [
        'throttle:60,1',
        'auth:api',
    ],
];

Por ejemplo, imagina que quieres que haya Middleware que se ejecuten solo en el Frontend y otros que quieres que se ejecuten únicamente en el Backend. Podremos especificarlo de la siguiente manera:

protected $middlewareGroups = [
    'frontend' => [
        \App\Http\Middleware\VerifyCsrfToken::class,
        \App\Http\Middleware\EncryptCookies::class,
    ],

    'backend' => [
        \App\Http\Middleware\RedirectIfAuthenticated::class,
        \App\Http\Middleware\AuthenticateAdmin::class,
    ],
];

Posteriormente, sólo tendremos que indicar en el archivo /app/routes.php el grupo que queremos aplicar a la ruta o al conjunto de rutas. Por ejemplo, si tenemos ya agrupadas el conjunto de rutas del backend (admin) en el archivo routes.php, entonces sólo tenemos que asignarle el grupo:

Route::group(['middleware' => ['backend']], function () {
    //
});

Nuevo comando de consola para la generación automática de estructura de autenticación de usuarios (Auth Scaffolding)

El título es bastante descriptivo. A partir de ahora contamos con un nuevo comando para Artisan que generará todas las rutas y vistas necesarias para la gestión del sistema de autenticación de usuarios:

php artisan make:auth

Añadir la salida de los comandos de consola a un archivo (sin sobreescribir – append)

Hasta ahora sólo podíamos redirigir la salida de un comando a un archivo sobreescribiendo el mismo. Desde ahora podemos anexar la salida a un archivo ya existente, de tal manera que no sobreescribamos el contenido, sino que lo adjuntemos al final. Para ello, tenemos que hacer uso de appendOutput:

$schedule->command('ips:update')
 ->cron('00 07 10 * *') // Every day 10th of a month
 ->sendOutputTo("/var/www/vhosts/valortop.com/logs/cron/update_country_ips_".$today.".txt");

Validación de Arrays de campos

Supongamos que tenemos un formulario con la siguiente estructura:

<p>
<input type="text" name="cliente[1][id]">
<input type="text" name="cliente[1][nombre]">
</p>
<p>
<input type="text" name="cliente[2][id]">
<input type="text" name="cliente[2][nombre]">
</p>

Antes teníamos que aplicar reglas de validación en una estructura iterativa, añadiendo las reglas individualmente a cada campo. A partir de ahora, Laravel permite que esta validación se haga a todos los campos que forman el array automáticamente. Para ello, hay que indicar en el controlador lo siguiente:

$v = Validator::make($request->all(), [
  'cliente.*.id' => 'exists:usuarios.id',
  'cliente.*.name' => 'required:string',
]);

 

 

 

 

 

Referencias

  • Share post

Leave a Reply

Your e-mail address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.