Blog

Laravel

Crear aplicaciones web con Laravel: rutas, modelos Eloquent, autenticación, colas y despliegue, explicados con ejemplos prácticos que puedes usar en proyectos reales.

¡Aquí todavía no hay historias!

Aún no hemos escrito sobre esto: explore otro tema o vuelva pronto.

Preguntas sobre este tema

Respuestas rápidas y claras a lo que más preguntan los lectores sobre este tema.

¿Qué es Laravel?

Laravel es un framework PHP gratuito y de código abierto para crear aplicaciones web. Ofrece piezas listas para el enrutamiento, las bases de datos, el inicio de sesión, el correo, las colas y las pruebas, así que se escribe menos código repetido. Sigue el patrón modelo, vista, controlador y tiene una comunidad muy grande.

¿Para qué se usa Laravel?

Laravel se usa para crear aplicaciones web como sistemas de gestión, portales de clientes, tiendas online, plataformas de reservas y APIs para apps móviles. Encaja en cualquier proyecto que necesite usuarios, una base de datos y reglas de negocio. Muchas empresas ejecutan grandes sistemas privados en Laravel porque es estable y fácil de ampliar.

¿Es Laravel bueno para principiantes?

Sí, Laravel es bueno para principiantes que ya saben PHP básico, porque su código es legible y su documentación oficial es clara. Además tiene una gran comunidad, muchos tutoriales y kits de inicio que te preparan las páginas de acceso. Aprender antes PHP puro hace el framework mucho más fácil de entender.

¿Cómo instalo Laravel en mi ordenador?

Para instalar Laravel, instala primero PHP y Composer y después ejecuta composer create-project laravel/laravel seguido del nombre de tu proyecto. El instalador de Laravel, con el comando laravel new, hace lo mismo y ofrece kits de inicio. Luego, php artisan serve arranca un servidor local para abrir la aplicación en el navegador.

¿Qué versión de PHP necesita Laravel?

Laravel necesita una versión reciente de PHP 8, y cada versión de Laravel indica la versión mínima de PHP que admite. Las versiones nuevas de Laravel dejan de admitir versiones antiguas de PHP cuando estas pierden el soporte de seguridad. Revisa siempre la guía de actualización de la versión de Laravel que vayas a usar.

¿Qué es el enrutamiento en Laravel?

El enrutamiento en Laravel une una dirección web y un método HTTP, como GET o POST, con el código que responde. Las rutas se escriben en archivos como routes/web.php para las páginas y routes/api.php para las APIs. Una ruta puede llamar a una closure o a un método de controlador y llevar middleware para el inicio de sesión y otras comprobaciones.

¿Qué es Eloquent en Laravel?

Eloquent es el ORM de Laravel, la parte que permite trabajar con las tablas de la base de datos como clases PHP llamadas modelos. Cada modelo corresponde a una tabla y cada objeto a una fila, así que puedes leer y guardar datos sin escribir SQL. Eloquent también gestiona relaciones como uno a muchos y muchos a muchos.

¿Cómo funcionan las relaciones de Eloquent en Laravel?

Las relaciones de Eloquent son métodos de un modelo, como hasMany, belongsTo y belongsToMany, que describen cómo se enlazan dos tablas. Una vez definidas, puedes leer datos relacionados como $order->customer sin escribir un join. La carga anticipada con el método with trae las filas relacionadas de una vez y evita consultas repetidas lentas.

¿Qué es el problema de consultas N+1 en Laravel?

El problema N+1 en Laravel aparece cuando el código carga una lista de registros y luego lanza una consulta extra por cada uno para obtener datos relacionados. Una página con 100 pedidos puede acabar ejecutando 101 consultas y volverse lenta. La carga anticipada con el método with lo soluciona trayendo las filas relacionadas en una sola consulta.

¿Qué son las migraciones en Laravel?

Las migraciones en Laravel son archivos PHP que crean y modifican tablas de la base de datos desde el código. Al ejecutar php artisan migrate se aplican, de modo que todos los desarrolladores y servidores tienen la misma estructura. Como se guardan en el control de versiones, se conserva el historial de cada cambio en las tablas.

¿Qué es Blade en Laravel?

Blade es el motor de plantillas de Laravel para escribir páginas HTML con etiquetas sencillas para bucles, condiciones y layouts. Escapa por defecto los valores que se imprimen, lo que protege las páginas del cross-site scripting. Las plantillas se compilan a PHP normal y se guardan en caché, así que Blade apenas añade coste a cada petición.

¿Cómo funciona la autenticación en Laravel?

La autenticación en Laravel funciona con guards, que comprueban quién es el usuario, y providers, que cargan los usuarios desde la base de datos. Kits de inicio como Laravel Breeze añaden páginas listas de acceso, registro y recuperación de contraseña. Las contraseñas se guardan como hash con bcrypt o Argon2, nunca en texto plano.

¿Qué diferencia hay entre Laravel Sanctum y Laravel Passport?

Laravel Sanctum ofrece un acceso sencillo con tokens y cookies para aplicaciones de una sola página, apps móviles y APIs básicas, mientras que Laravel Passport es un servidor OAuth2 completo. La mayoría de proyectos solo necesitan Sanctum porque es más ligero y fácil de configurar. Passport encaja cuando aplicaciones externas deben iniciar sesión en nombre de tus usuarios.

¿Qué son los middleware en Laravel?

Los middleware en Laravel son capas que revisan o modifican una petición antes de que llegue a tu código, o una respuesta antes de que salga. Los habituales gestionan la comprobación de sesión, la protección CSRF, la limitación de peticiones y el idioma. Puedes asignarlos a rutas sueltas, a grupos de rutas o a toda la aplicación.

¿Cómo funcionan las colas en Laravel?

Las colas en Laravel sacan las tareas lentas, como enviar correos o generar informes, de la petición web y las convierten en trabajos en segundo plano. El trabajo se envía a un driver de colas como Redis o la base de datos, y un worker iniciado con php artisan queue:work lo ejecuta. El usuario recibe una respuesta rápida mientras la tarea pesada termina en segundo plano.

¿Cuándo debo usar colas en una aplicación Laravel?

Debes usar colas en una aplicación Laravel siempre que una tarea tarde más de un instante o hable con un servicio externo, como el correo, el procesamiento de archivos o los webhooks de pago. Las colas mantienen las páginas rápidas y permiten que los trabajos fallidos se reintenten solos. Laravel Horizon ofrece un panel para vigilar las colas de Redis.

¿Cómo programo tareas en Laravel?

Las tareas se programan en Laravel definiéndolas en el scheduler con métodos como daily o everyFiveMinutes y ejecutando php artisan schedule:run cada minuto desde una única entrada cron del servidor. El scheduler decide entonces qué tareas tocan. Así todos los trabajos periódicos quedan en el código en lugar de en muchas líneas cron sueltas.

¿Cómo valido los datos de un formulario en Laravel?

Los datos de un formulario se validan en Laravel con el método validate de la petición o con una clase Form Request que contiene las reglas. Reglas como required, email, max y unique comprueban cada campo antes de que tu código lo use. Si la validación falla, Laravel devuelve al usuario al formulario con los mensajes de error y los datos que había escrito.

¿Cómo protege Laravel frente a los ataques web más comunes?

Laravel protege frente a los ataques web comunes con tokens CSRF en los formularios, salida escapada en Blade, parámetros enlazados en las consultas y contraseñas con hash. Estas opciones por defecto bloquean en el uso normal la falsificación de peticiones, el cross-site scripting y la inyección SQL. Aun así, los desarrolladores deben validar los datos, comprobar permisos y mantener el framework actualizado.

¿Cómo despliego una aplicación Laravel en un servidor?

Para desplegar una aplicación Laravel, descarga el código en el servidor, ejecuta composer install sin los paquetes de desarrollo, configura el archivo .env y lanza las migraciones. Después guarda en caché la configuración, las rutas y las vistas, y apunta el servidor web a la carpeta public. Muchos equipos automatizan estos pasos desde Git para que cada versión se publique igual.

¿Qué servidor necesita una aplicación Laravel?

Una aplicación Laravel necesita un servidor con PHP, un servidor web como Nginx o Apache, una base de datos como MySQL o PostgreSQL y Composer. A menudo se añade Redis para la caché y las colas, y un gestor de procesos mantiene en marcha los workers. Hostrena, la marca de hosting de Linkysoft, ofrece hosting de aplicaciones web para Laravel desplegadas directamente desde Git.

¿Cómo hago más rápida una aplicación Laravel?

Una aplicación Laravel se acelera guardando en caché la configuración, las rutas y las vistas, usando carga anticipada en las relaciones y añadiendo índices a las columnas por las que buscas. Pasar el trabajo lento a colas y guardar en Redis los resultados de consultas pesadas ayuda todavía más. Activar OPcache de PHP en el servidor da una gran mejora con poco esfuerzo.

¿Cómo pruebo una aplicación Laravel?

Una aplicación Laravel se prueba con PHPUnit o Pest, que vienen configurados en cada proyecto nuevo. Las pruebas de funcionalidad envían peticiones simuladas a tus rutas y comprueban la respuesta y la base de datos, y las pruebas unitarias revisan clases sueltas. El comando php artisan test ejecuta toda la batería de pruebas.

¿Puede Laravel con aplicaciones grandes y muchos usuarios?

Sí, Laravel puede con aplicaciones grandes y muchos usuarios si funciona en buenos servidores con caché, colas, índices en la base de datos y varios servidores de aplicación tras un balanceador de carga. Rara vez el límite es el framework; suelen serlo las consultas lentas y la falta de caché. Por eso Linkysoft desarrolla aplicaciones web a medida con PHP, Laravel, MySQL y Redis.

¿Cada cuánto debo actualizar mi versión de Laravel?

Debes actualizar Laravel como mínimo antes de que tu versión actual deje de recibir correcciones de seguridad. Laravel publica una versión mayor aproximadamente una vez al año, y cada una llega con su guía de actualización. Las actualizaciones pequeñas y periódicas son mucho más fáciles que saltar varias versiones de golpe.