Autenticación de API – Documentación de Laravel 6

Introducción

Por defecto, Laravel viene con una sencilla solución para autenticación de API mediante tokens aleatorios asignados a cada usuario de tu aplicación. En tu archivo de configuración config/auth.php, un guard api ya está definido y utiliza un driver token. Este driver es responsable de inspeccionar el token de la API en la solicitud entrante y verificar que coincida con el token asignado al usuario en la base de datos.

Nota: Aunque Laravel viene con un sencillo guard de autenticación basado en token, te recomendamos considerar usar Laravel Passport para aplicaciones robustas en producción que ofrecen autenticación de API.

Configuración

Ver post

Autenticación – Documentación de Laravel 6

Introducción

¿Quieres comenzar rápido? Instala el paquete de Composer laravel/ui (1.0) y ejecuta php artisan ui vue --auth en una nueva aplicación de Laravel. Luego de migrar tu base de datos, dirígete en tu navegador a http://tu-app.test/register o cualquier otra URL asignada a tu aplicación. ¡Estos dos comandos se encargarán de generar todo el sistema de autenticación!

Laravel hace la implementación de la autenticación algo muy sencillo. De hecho, casi todo se configura para ti por defecto. El archivo de configuración de la autenticación está localizado en config/auth.php, el cual contiene varias opciones bien documentadas para ajustar el comportamiento de los servicios de autenticación.

En esencia, las características de la autenticación de Laravel están compuestas de «guards» (guardias) y «providers» (proveedores). Los Guards definen cómo los usuarios son autenticados para cada petición. Por ejemplo, Laravel contiene un guard session el cual mantiene el estado utilizando el almacenamiento de sesión y las cookies.

Los proveedores definen cómo se retornan los usuarios de tu almacenamiento persistente. Laravel cuenta con soporte para recuperar los usuarios utilizando Eloquent y el constructor de consultas de la base de datos. Sin embargo, eres libre de definir los proveedores adicionales que requiera tu aplicación.

¡No te preocupes si esto suena confuso por el momento! Muchas aplicaciones nunca necesitarán modificar la configuración predeterminada de la autenticación.

Ver post

Compilación De Assets (Laravel Mix) – Documentación de Laravel 6

Introducción

Laravel Mix proporciona una API fluida para definir pasos de compilación de Webpack para tu aplicación de Laravel usando múltiples preprocesadores de CSS y JavaScript. A través de encadenamiento de métodos simples, puedes definir fluidamente tus pipelines de assets. Por ejemplo:

mix.js('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css');

Si alguna vez has estado confundido o agobiado al comenzar con Webpack y la compilación de assets, amarás Laravel Mix. Sin embargo, no estás obligado a usarlo durante el desarrollo de tu aplicación. Eres libre de usar cualquier pipeline de assets que desees o incluso ninguno.

Instalación y configuración

Instalando Node

Antes de ejecutar Mix, debes asegurarte que Node.js y NPM están instalados en tu máquina.

node -v
npm -v

Por defecto, Laravel Homestead incluye todo lo que necesitas; sin embargo, si no estás usando Vagrant, entonces puedes fácilmente instalar la última versión de Node y NPM usando instaladores sencillos desde su página de descargas.

Laravel Mix

El único paso restante es instalar Laravel Mix. Dentro de una instalación nueva de Laravel, encontrarás un archivo package.json en la raíz de tu estructura de directorios. El archivo por defecto package.json incluye todo lo que necesitas para comenzar. Piensa en éste como tu archivo composer.json, excepto que define dependencias de Node en lugar de PHP. Puedes instalar las dependencias a las cuales hace referencia ejecutando:

npm install

Ejecutando Mix

Mix es una capa de configuración basado en Webpack, así que para ejecutar tus tareas de Mix sólo necesitas ejecutar uno de los scripts de NPM incluidos en el archivo package.json por defecto de Laravel:

// Run all Mix tasks...
npm run dev

// Run all Mix tasks and minify output...
npm run production

Observando cambios en los assets

El comando npm run watch continuará ejecutándose en tu terminal y observando todos los archivos relevantes por cambios. Webpack entonces automáticamente recompilará tus assets cuando detecte un cambio:

npm run watch

Puedes encontrar que en algunos entornos Webpack no está actualizando los cambios en tus archivos. Si éste es el caso en tu sistema, considera usar el comando watch-poll:

npm run watch-poll

Trabajando con hojas de estilos

El archivo webpack.mix.js es el punto de entrada para toda la compilación de assets. Piensa en éste como un wrapper de configuración liviano alrededor de Webpack. Las tareas de Mix pueden ser encadenadas para definir exactamente cómo tus assets deben ser compilados.

Ver post

JavaScript y Estructuración de CSS – Documentación de Laravel 6

Introducción

Mientras Laravel no dicta la pauta sobre qué pre-procesadores de JavaScript o CSS usar, si proporciona un punto de inicio básico usando Bootstrap, React y / o Vue que será de utilidad para muchas aplicaciones. De forma predeterminada, Laravel usa NPM para instalar ambos paquetes de frontend.

La estructura de Bootstrap y Vue proporcionada por Laravel se encuentra en el paquete de Composer laravel/ui, que se puede instalar usando Composer:

composer require laravel/ui:^1.0 --dev

Una vez que se haya instalado el paquete laravel/ui, puedes instalar la estructura del frontend usando el comando ui de Artisan:

// Generate basic scaffolding...
php artisan ui bootstrap
php artisan ui vue
php artisan ui react

// Generate login / registration scaffolding...
php artisan ui bootstrap --auth
php artisan ui vue --auth
php artisan ui react --auth

CSS

Laravel Mix proporciona una clara y expresiva API sobre compilación de Sass o Less, las cuales son extensiones de CSS plano que agregan variables, mixins y otras poderosas características que hacen el trabajo con CSS mucho más divertido. En este documento, discutiremos brevemente la compilación CSS en general; sin embargo, deberías consultar la documentación de Laravel Mix completa para mayor información sobre compilación de Sass o Less.

JavaScript

Laravel no requiere que uses un framework o librería de JavaScript específica para construir tus aplicaciones. De hecho, no tienes que usar JavaScript en lo absoluto. Sin embargo, Laravel sí incluye algunas de las estructuras básicas para hacer más fácil los primeros pasos para escribir JavaScript moderno usando el framework Vue. Vue proporciona una API expresiva para construir aplicaciones de JavaScript robustas usando componentes. Como con CSS, podemos usar Laravel Mix para compilar fácilmente componentes de JavaScript en un único archivo de JavaScript para los eventos del navegador.

Escribiendo CSS

Después de instalar el paquete de Composer laravel/ui y generada la estructura del frontend,
el archivo package.json de Laravel incluye el paquete bootstrap que te ayuda a empezar a hacer un prototipo del frontend de tu aplicación usando Bootstrap. Sin embargo, siéntete libre de agregar o eliminar los paquetes del archivo package.json como sea necesario para tu aplicación. No es obligatorio que uses el framework Bootstrap para construir tu aplicación de Laravel – se proporciona como un buen punto de inicio para aquellos que elijan usarlo.

Antes de compilar tu CSS, instala las dependencias de frontend de tu proyecto usando el gestor de paquetes para Node (NPM):

npm install

Una vez que las dependencias hayan sido instaladas usando npm install, puedes compilar tus archivos Sass a CSS plano usando Laravel Mix. El comando npm run dev procesará las instrucciones en tu archivo webpack.mix.js. Típicamente, tu CSS compilado estará ubicado en el directorio public/css:

npm run dev

El archivo webpack.mix.js incluido de forma predeterminada con Laravel compilará el archivo Sass resources/sass/app.scss. Este archivo app.scss importa un archivo de variables Sass y carga Bootstrap, el cual proporciona un buen punto de comienzo para la mayoría de las aplicaciones. Siéntete libre de personalizar el archivo app.scss en la forma que desees o incluso usar un pre-procesador completamente diferente configurando Laravel Mix.

Escribiendo JavaScript

Todas las dependencias de JavaScript requeridas por tu aplicación pueden ser encontradas en el archivo package.json en el directorio principal del proyecto. Este archivo es similar a un archivo composer.json excepto que éste especifica las dependencias de JavaScript en lugar de las dependencias de PHP. Puedes instalar estas dependencias usando el gestor de paquetes de Node (NPM):

npm install

De forma predeterminada, el archivo package.json de Laravel incluye unos cuantos paquetes tales como lodash y axios para ayudarte a empezar a construir tu aplicación de JavaScript. Siéntete libre de agregar o eliminar del archivo package.json según sea necesario para tu aplicación.

Una vez que los paquetes sean instalados, puedes usar el comando npm run dev para compilar tus recursos. Webpack es un empaquetador de módulos para aplicaciones modernas en JavaScript. Cuando ejecutes el comando npm run dev, Webpack ejecutará las instrucciones en tu archivo webpack.mix.js:

npm run dev

De forma predeterminada, el archivo de webpack.mix.js de Laravel compila tu archivo Sass y el de resources/js/app.js. Dentro del archivo app.js puedes registrar tus componentes de Vue o, si prefieres un framework distinto, configurar tu propia aplicación de JavaScript. Tu JavaScript compilado será colocado típicamente en el directorio public/js.

El archivo app.js cargará el archivo resources/js/bootstrap.js el cual estructura y configura Vue, Axios, jQuery, y todas las demás dependencias de JavaScript. Si tienes dependencias adicionales de JavaScript que configurar, puedes hacerlo en este archivo.

Ver post

Configuración Regional – Documentación de Laravel 6

Introducción

Las características de configuración regional de Laravel proporcionan una forma conveniente de retornar cadenas en varios idiomas, permitiéndote soportar fácilmente múltiples idiomas en tu aplicación. Las cadenas de idiomas son almacenadas en archivos dentro del directorio resources/lang. Dentro de este directorio debería haber un subdirectorio para cada idioma soportado por la aplicación:

/resources
    /lang
        /en
            messages.php
        /es
            messages.php

Todos los archivos de idioma retornan un arreglo de cadenas con sus claves. Por ejemplo:

<?php

return [
    'welcome' => 'Welcome to our application'
];

Para idiomas que difieren por territorio, debes nombrar los directorios de idiomas según la ISO 15897. Por ejemplo, «en_GB» debe ser usado para inglés británico en lugar de «en-gb».

Ver post

Plantillas Blade – Documentación de Laravel 6

Introducción

Blade es un motor de plantillas simple y a la vez poderoso proporcionado por Laravel. A diferencia de otros motores de plantillas populares de PHP, Blade no te impide utilizar código PHP plano en tus vistas. De hecho, todas las vistas de Blade son compiladas en código PHP plano y almacenadas en caché hasta que sean modificadas, lo que significa que Blade no añade sobrecarga a tu aplicación. Los archivos de las vistas de Blade tienen la extensión .blade.php y son usualmente almacenados en el directorio resources/views.

En Styde.net contamos con una completa lección sobre Blade totalmente gratuita.

Herencia de plantillas

Ver post

Registro (Logging) – Documentación de Laravel 6

Introducción

Para ayudarte a aprender más acerca de lo que está sucediendo dentro de tu aplicación, Laravel proporciona un robusto servicio de registro que te permite registrar mensajes en archivos, en el registro de errores del sistema e incluso en Slack para notificar a todo tu equipo.

De forma interna, Laravel usa la biblioteca Monolog, que proporciona soporte para una variedad de poderosos manejadores de registros. Laravel hace que sea pan comido configurar dichos manejadores, permitiéndote mezclarlos y juntarlos para personalizar el manejo de registros en tu aplicación.

Configuración

Toda la configuración para el sistema de registros de tu aplicación se encuentra en el archivo de configuración config/logging.php. Este archivo te permite configurar los canales de registros de tu aplicación, así que asegúrate de revisar cada uno de los canales disponibles y sus opciones. Revisaremos algunas opciones comunes a continuación.

Por defecto, Laravel usará el canal stack al registrar mensajes. El canal stack es usado para agregar múltiples canales de registros en un solo canal. Para más información sobre la construcción de stacks, revisa la documentación debajo.

Configurando el nombre del canal

Por defecto, Monolog es instanciado con un «nombre de canal» que concuerda con el entorno actual, como production o local. Para cambiar este valor, agrega una opción name a la configuración de tu canal:

'stack' => [
    'driver' => 'stack',
    'name' => 'channel-name',
    'channels' => ['single', 'slack'],
],

Drivers de canales disponibles

Nombre Descripción
stack Wrapper para facilitar la creación de canales «multi-canales»
single Canal de registro de un sólo archivo o ubicación (StreamHandler)
daily Driver de Monolog basado en RotatingFileHandler que rota diariamente
slack Driver de Monolog basado en SlackWebhookHandler
papertrail Driver de Monolog basado en SyslogUdpHandler
syslog Driver de Monolog basado en SyslogHandler
errorlog Driver de Monolog basado en ErrorLogHandler
monolog Driver factory de Monolog que puede usar cualquier manejador de Monolog soportado
custom Driver que llama a un factory especificado para crear un canal

Consulta la documentación sobre personalización avanzada de canales para aprender más sobre monolog y drivers personalizados.

Configuración de los canales single y daily

Los canales single y daily tienen tres opciones de configuración opcionales: bubble, permission y locking.

Nombre Descripción Default
bubble Indica si los mensajes deberían llegar a otros canales después de ser manejados true
permission Los permisos del archivo de registro 0644
locking Intenta bloquear el archivo de registro antes de escribirlo false

Configurando el canal de papertrail

El canal papertrail requiere de las opciones de configuración url y port. Puedes obtener estos valores desde Papertrail.

Configurando el canal de Slack

El canal slack requiere una opción de configuración url. Esta URL debe coincidir con una URL de un webhook entrante que hayas configurado para tu equipo de Slack. Por defecto, Slack sólo recibirá registros en el nivel critical y superior; sin embargo, puedes ajustar esto en tu archivo de configuración logging.

Ver post

Manejo de Errores – Documentación de Laravel 6

Introducción

Cuando comienzas un nuevo proyecto de Laravel, el manejo de excepciones y errores ya está configurado para ti. La clase App\Exceptions\Handler es donde todas las excepciones disparadas por tu aplicación son registradas y después renderizadas de vuelta al usuario. Revisaremos más profundamente dentro de esta clase a través de esta documentación.

Configuración

La opción debug en tu archivo de configuración config/app.php determina cuanta información sobre un error se muestra realmente al usuario. Por defecto, esta opción es establecida para respetar el valor de la variable de entorno APP_DEBUG, la cual es almacenada en tu archivo .env.

Para desarrollo local, deberías establecer la variable de entorno APP_DEBUG a true. En tu entorno de producción, este valor debería estar siempre false. Si el valor es establecido a true en producción, te arriesgas a exponer valores de configuración sensibles a los usuarios finales de tu aplicación.

Manejador de excepciones

Ver post

Validación – Documentación de Laravel 6

Introducción

Laravel proporciona varios enfoques diferentes para validar los datos entrantes de tu aplicación. De forma predeterminada, la clase base del controlador de Laravel usa el trait ValidatesRequests el cual proporciona un método conveniente para validar las solicitudes HTTP entrantes con una variedad de poderosas reglas de validación.

Inicio rápido de validación

Para aprender sobre las poderosas características de validación de Laravel, vamos a observar un ejemplo completo validando un formulario y mostrando los mensajes de error devueltos al usuario.

Ver post

Sesión HTTP – Documentación de Laravel 6

Introducción

Ya que las aplicaciones manejadas por HTTP son sin estado, las sesiones proporcionan una forma de almacenar información sobre el usuario a través de múltiples solicitudes. Laravel viene con una variedad de backends de sesión que son accedidos a través de una expresiva API unificada. El soporte para los backends populares tales como Memcached, Redis y bases de datos es incluido de forma predeterminada.

Ver post

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Suscríbete a nuestro boletín

Recibe consejos útiles, promos y múltiples recursos directamente en tu correo.

Tu nombre y correo serán enviados directamente a MailChimp. No compartiremos tus datos con otras empresas.