Laravel

> Temas > Laravel
Editar

Laravel es un popular framework de PHP. Permite el desarrollo de aplicaciones web totalmente personalizadas de elevada calidad.

Laravel es un popular framework PHP. En estos momentos es el framework más utilizado y de mayor progresión en la comunidad PHP y en general también es el más popular de los frameworks backend para desarrollo de proyectos en la web.

Laravel tiene un enfoque bastante moderno y ofrece muchas utilidades potentes a los desarrolladores, que permiten agilizar el desarrollo de las aplicaciones web y su mantenimiento. Como todo framework nos aporta una base de código para el desarrollo de proyectos. Esa base ofrece principalmente dos ventajas:

  • Una arquitectura depurada, que nos anima a seguir para crear proyectos con unos estándares de calidad elevados.
  • Una serie de bibliotecas de utilidad diversa que nos ayudarán en el desarrollo de áreas habituales dentro de las aplicaciones.

El equipo de Laravel pone énfasis en la calidad del código, la facilidad de mantenimiento y escalabilidad. Es adecuado para realizar proyectos desde pequeños a grandes o muy grandes. Además usando Laravel conseguiremos facilitar el trabajo en equipo con las mejores prácticas, permitiendo también que los proyectos sean muy parecidos unos a otros, lo que facilita el desarrollo y mejora la mantenibilidad del código.

Más información:

Canales de eventos y clases en directo

Laravel

Manuales

Manual de Laravel

Manual de Laravel

Manual de Laravel, el más popular de los frameworks PHP, adorado por su comunidad, con el ecosistema más completo y un jugoso conjunto de funcionalidades para aplicaciones de todos los tamaños.
Manual del desarrollo de API con Laravel
En este manual explicamos los packages del ecosistema de Laravel que nos sirven para desarrollar un API. Detallamos paso a paso la instalación y configuración de Laravel para crear un servicio web JSON.

Colecciones

Colección de Herramientas para entornos de desarrollo dockerizados en Laravel

Herramientas para entornos de desarrollo dockerizados en Laravel

Una colección de herramientas para crear...

6 ítems

Características de Laravel

El framework Laravel trabaja con una arquitectura de carpetas avanzada, de modo que promueve la separación de los archivos con un orden correcto y definido, que guiará a todos los integrantes del equipo de trabajo y será un estándar a lo largo de los distintos proyectos. Por supuesto, dispone también de una arquitectura de clases también muy adecuada, que promueve la separación del código por responsabilidades. Su estilo arquitectónico es MVC.

Contiene además un amplio conjunto de características, que sirven para realizar la mayoría de las aplicaciones web. Entre ellas podemos encontrar:

  • Un sistema de rutas, mediante las cuales es fácil crear y mantener todo tipo de URLs amistosas a usuarios y buscadores, rutas de API, etc.
  • Un sistema de abstracción de base de datos, con un ORM potente pero sencillo de manejar, mediante el que podemos tratar los datos de la base de datos como si fueran simples objetos.
  • Un sistema para creación de colas de trabajo, de modo que es posible enviar tareas para ejecución en background y aumentar el rendimiento de las aplicaciones.
  • Varias configuraciones para envío de email, con proveedores diversos
  • Un sistema de notificaciones a usuarios, mediante email, base de datos y otros canales
  • Una abstracción del sistema de archivos, mediante el cual podemos escribir datos en proveedores cloud, y por supuesto en el disco del servidor, con el mismo código.
  • Gestión de sesiones
  • Sistema de autenticación, con todo lo necesario como recordatorios de clave, confirmación de cuentas, recordar un usuario logueado, etc.
  • La posibilidad de acceder a datos en realtime y recibir notificaciones cuando éstos se alteran en la base de datos.
  • Elecada seguridad y actualizaciones muy frecuentes.

Editar

Por qué Laravel se ha convertido en el framework PHP preferido de la comunidad

Laravel es un framework más nuevo que muchos de sus competidores. Ha venido desde atrás con una progresión muy fuerte, consolidándose en los últimos años como el framework PHP más utilizado.

Esta progresión se debe a varios factores. Obviamente, es fundamental la cantidad de funcionalidad que nos ofrece ya lista, sin embargo este motivo no es el más importante, dado que muchos otros frameworks ofrecen un soporte también muy completo. Sí es verdad que la cantidad de módulos ha ido incrementándose continuamente y a día de hoy es posible que supere a otras alternativas populares, pero su adopción por parte de la comunidad ha sido muy relevante incluso antes de ello.

Facilidad de uso: Desde el conocimiento de varios frameworks populares, más o menos complejos, podemos decir que Laravel es uno de los más sencillos de utilizar. Existen frameworks tan potentes como Laravel, pero la curva de aprendizaje es bastante más severa. Esto ha posibilitado que desarrolladores que ya venían utilizando alternativas más sencillas para el desarrollo de aplicaciones y deseaban pasar a otros frameworks más completos, han podido acercarse con éxito a Laravel, sin demasiadas frustraciones por tener que aprender cosas nuevas.

Artisan: Laravel dispone de un potente sistema de comandos de consola para resumir muchas tareas tediosas y repetitivas. Artisan, la herramienta de línea de comandos de Laravel ha conseguido que la experiencia de desarrollo con Laravel sea muy atractiva para las personas que se han decidido por este framework.

Documentación y tutoriales: La documentación de Laravel siempre ha sido muy completa, además tiene un enfoque bastante didáctico, por lo que resulta muy sencillo de usar como base para el aprendizaje y no solamente la referencia. Además Laravel ha venido con una serie de proyectos paralelos de tutoriales adicionales a la documentación que han ayudado mucho a su divulgación y la creación de una activa comunidad.

Solidez: Desde las versiones iniciales ha demostrado una gran solidez, lo que ha permitido que su crecimiento no rompiese de manera radical los proyectos que necesitaban ser actualizados. Esto ayuda bastante a que sus seguidores sigan confiando y apoyando las herramientas. A la vez, Laravel ha conseguido adaptarse desde el inicio con toda una serie de herramientas del mundo del desarrollo actual, como los proveedores de cloud para almacenamiento de archivos, proveedores de pagos electrónicos, sistemas de mensajería y email, etc.

Apoyarse en otros productos sin inventar la rueda: Laravel no ha necesitado reinventar el mundo del desarrollo. En cambio ha sabido aprovechar mucha de la funcionalidad de productos ya consolidados. El ejemplo más importante es el framework Symfony, del que se ha extraído cantidad de funcionalidad que ya estaba muy madura, adoptándola para hacer posible un crecimiento rápido, estable y seguro.

Lo cierto es que cualquier producto que viene desde atrás tiene muchas más posibilidades de llegar a una fórmula ganadora. Laravel ha conseguido tomar ventaja de esta situación y llegar a escalar lo suficiente para convertirse en el framework PHP más popular.

Editar

Ecosistema de Laravel

Una de las claves del éxito de Laravel es que se ha convertido en una industria de generación de servicios relacionados con el framework. Esto ha permitido que las personas cercanas a su núcleo, Taylor Otwell a la cabeza, tengan una base sólida para financiar el desarrollo de Laravel, agregar funcionalidad y seguir innovando con la creación de nuevas herramientas que hagan la vida más sencilla a los desarrolladores.

Algunos de los servicios y herramientas para el framework Laravel más populares y útiles son los siguientes:

  • Forge: es un sistema de administración de servidores, como una especie de panel con el que puedes crear dominios, instalar Laravel, desplegar aplicaciones, etc. Pone a los desarrolladores toda una serie de herramientas para que instalar aplicaciones Laravel en producción sea muy sencillo.
  • Vapor: permite desplegar aplicaciones Laravel sin necesidad de tener un servidor. Es decir, es un bakend "serverless". Al no tener servidor te ahorras la necesidad de administrar tu propio sistema, lo que teóricamente quita trabajo y aumenta la seguridad.
  • Nova: es un sistema de gestión de contenido que permite crear los típicos paneles de administración de una manera muy cómoda. Es muy versátil y ahorra cientos de horas de programación que muchas veces son tediosas y repetitivas.
  • Envoyer: Permite integración continua de las aplicaciones Laravel, simplemente haciendo un push al repositorio la aplicación se despliega en su nueva versión, sin interrumpir el servicio.
  • Spark: Permite crear aplicaciones con una base de código encima del propio Laravel, evitando muchas partes que se pueden repetir en muchos de los proyectos.

Los anteriores son proyectos que, de alguna u otra manera, tienen cierta parte de pago y que sirven como decíamos para financiar la maquinaria en torno de Laravel. Pero además hay muchos otros servicios que forman parte del ecosistema de Laravel que son gratuitos o están incluidos entre las funcionalidades del framework:

  • Homestead: Permite máquinas virtuales para facilitar el desarrollo de Laravel en las condiciones más profesionales.
  • Valet: Permite en Mac crear entornos de ejecución de Laravel para desarrollo muy ligeros y fáciles de configurar mediante comandos de consola.
  • Cashier: Para pagos electrónicos y suscripciones
  • Scout: un sistema de búsqueda por texto
  • Passport: Un sistema de autenticación OAuth2
  • Mix: una envoltura de Webpack para compilar assets y realizar tareas del front, sin las complejidades de administrar un entorno directamente con Webpack.
  • Echo: que permite trabajar con datos en tiempo real
  • Horizon: para la monitorización de colas de procesos

Editar

Alternativas de servidores de desarrollo para Laravel

Una de las grandes ventajas de Laravel es la cantidad de opciones que ofrece para crear entornos de desarrollo. Gracias a ello cualquier desarrollador puede encontrar una alternativa que se adapte a sus necesidades o preferencias.

Servidor interno: seria la opción más básica, que se consigue mediante un simple comando de consola.

php artisan serve

Laravel Valet: disponible para Mac, permite crear virtual hosts mediante comandos de consola. Puedes conocer más detalles en el artículo de Valet.

Tanto si utilizas "artisan serve" como Valet tendrás que instalar la base de datos MySQL de manera adicional, aunque en modo de desarrollo también puedes usar SQLite, que no requiere instalar ningún motor de bases de datos en local.

Laravel Homestead: esta opción es la más avanzada y se basa en virtualización, con lo que se obtiene un entorno profesional que se adapta a las condiciones del servidor. Puedes aprender a usar este entorno en el artículo de Homestead.

Laravel Sail: con Sail podemos usar contenedores y Docker como entorno de desarrollo para Laravel. La gracia de Sail es que te permite crear toda la configuración de los contenedores de manera automática, y sin necesidad de conocimientos de Docker, por lo que resulta muy cómodo. Puedes aprender más en el artículo de Sail.

Cualquier otro servidor web habitual: por supuesto, Laravel además puede usarse cualquier servidor local PHP que se disponga, entre los que recomendamos Laragon, Xampp o Mamp. Estas alternativas tienen la ventaja de disponer de la instalación de MySQL en un solo paso. Puedes acceder aquí a una página con alternativas de servidores.

Editar

Laravel es un framework Full-stack

Aunque es verdad que la parcela más determinante que ocupa Laravel es el backend, pues su base de código es principalmente PHP, debemos considerarlo un framework full-stack, dado que también aborda de manera muy marcante el lado del frontend.

  • En principio cuando instalamos un proyecto Laravel ya tiene configurada toda la parte de compilación del código Javascript y CSS, imprescindible en los proyectos actuales.
  • Si lo deseamos, podemos instalar de manera opcional diversos starter kit que aportan una cantidad de código y de tecnologías frontend.
  • Tiene incluso frameworks como Livewire que permiten trabajar comportamientos dinámicos del lado del cliente, como conexiones Ajax sin necesidad de escribir código Javascript.

La parte conflictiva de entrar en el marco de frontend es la diveridad de tecnologías y frameworks que existen para Javascript, incluso para CSS. Sin embargo, Laravel tiene la ventaja de disponer de diversos stacks de tecnologías frontend, de modo que los desarrolladores pueden escoger el que más les interese, case con sus gustos o se adapte a las necesidades del proyecto y la experiencia de usuario que busquen.

Por ejemplo podemos construir con dependencias "sencillas" como React o Vue si estamos capacitados para trabajar con el Javascript. Podemos usar Livewire si preferimos mantenernos más centrados en la parte del backend o podemos usar Inertia si queremos una experiencia de app moderna pero sin la necesidad de separar el backend del frontend.

Por último podemos limitarnos al desarrollo de un API con Laravel y aún así tenemos starter kits en tecnologías como NextJS que nos permiten disponer de una base de código preparada para consumir las API y ahorrarnos bastantes horas de trabajo inicial.

En definitiva, con Laravel no necesitas casarte con ninguna tecnología frontend en particular pero sí te ofrece muchas utilidades y bases de código frontend con diversos stack que se adaptan a la mayoría de desarrolladores.

Editar

¿Quieres añadir algo sobre Laravel?

Crea artículos, recursos o comparte información sobre Laravel

Crear un bloque

Temas relacionados

Dentro de Laravel

Laravel UI

Laravel UI es un starter kit para aplicaciones Laravel, que permite incorporar a Laravel funcionalidades para el login, registro de usuarios, validación de emails, recuperación de claves.

Laravel UI permite aplicar a los proyectos Laravel un grado extra de utilidades dedicadas a la autenticación de usuarios. Es totalmente opcional, por lo que no se incluye de casa en el framework, sino que hay que instalarlo de manera adicional.

Laravel UI fue incorporado en Laravel 6 y sustituido más tarde por Laravel Breeze a partir de la versión 8.

Editar

Preguntas y respuestas de Laravel UI

Laravel Sail

Sail es una herramienta para crear de manera sencilla entornos de desarrollo para aplicaciones Laravel basados en contenedores.

Sail es una solución completa para usar Docker como herramienta de desarrollo de aplicaciones Laravel, sin la necesidad de lidiar con complejas configuraciones de los contenedores, las interacciones entre ellos, volúmenes, etc.

Sail es muy útil porque permite obtener todo lo que necesitas para desarrollar en Laravel, de una vez y solamente realizando un par de comandos de consola. No solamente incluye el servidor web y los sistemas gestores de bases de datos, sino también otras herramientas como Redis, Mailhog, Selenium, etc.

Además ofrece la ventaja del desarrollo en una plataforma que será muy similar o idéntica a la que se usará en producción, eliminando la posibilidad de los típicos errores de despliegue.

Editar

Laravel Sail

Localización Laravel

La localización de Laravel consiste en la adaptación del framework a cualquiera de los idiomas que necesite un proyecto.

La localización de las aplicaciones consiste en la adaptación al idioma de los usuarios que las irán a utilizar. Laravel es un framework preparado para la localización a cualquier idioma y también para la creación de páginas multi-idioma.

Existen traducciones ya listas para la localización de Laravel a los idiomas más importantes, por lo que muchas veces el trabajo consiste en instalar el paquete de traducciones y configurar el framework para utilizarlo. Además, en el proceso somos capaces de personalizar las traducciones o ampliarlas a medida que la aplicación vaya creaciendo y lo necesite.

Editar

Localización Laravel

Migraciones Laravel

Las migraciones nos permiten mantener el esquema de la base de datos mediante código, de modo que se puede compartir fácilmente entre sistemas.

Las migraciones son una de las herramientas básicas de los ORM. Mediante las migraciones podemos crear código que, al ejecutarse, configurará el modelo de base de datos en nuestro sistema gestor.

Puedes entenderlas como un sistema de control de versiones del estado del modelo de datos de tu base de datos. Tienen diversas utilidades, como:

  • Abstraerse del sistema de base de datos al crear tablas o modificar las existentes
  • Permitir compartir el código que altera el modelo de datos, de modo que varios desarrolladores puedan sincronizar el estado de las tablas
  • Crear la estructura de la base de datos automáticamente, algo muy útil para pruebas
  • Automatizar el despliegue de las versiones de la aplicación, de modo que al instalarse la nueva versión se actualicen las tablas
  • Permitir crear packages de Laravel que publican migraciones en nuestro sistema y gracias a ellas crear la estructura de las tablas necesaria para que estos packages funcionen correctamente

Laravel ofrece un completo sistema de migraciones que nos permite crear las tablas, modificarlas añadiendo o quitando campos o incluso alterar los campos de las tablas que se necesiten cambiar.

Mediante Artisan modemos crear archivos de migraciones, correr las migraciones, ir hacia atrás, etc.

Editar

Laravel Nova

Una herramienta del ecosistema de Laravel que permite crear un panel de control para la administración de los datos de las aplicaciones.

Laravel Nova es un generador de paneles de administración personalizados. Es una aplicación web que se encuentra dentro del ecosistema de herramientas de Laravel, que vio la luz en 2018.

Gracias a Laravel Nova conseguimos crear un panel de administración del contenido de una web, lo que a veces se conoce como backoffice o backend o siemplemente página de administración. Gracias a Laravel Nova podemos crear en pocas horas uno de estos paneles totalmente personalizado para los datos de cualquier aplicación, con diversas utilidades para que la gestión del contenido sea sencilla y productiva.

Tiene una interfaz de usuario intuitiva y moderna con una experiencia adecuada para la gestión del contenido de los modelos que se hayan declarado en la aplicación de Laravel.

Editar

Laravel Nova

Validaciones Laravel

El sistema de validación de Laravel es potente y fácil de utilizar. Permite realizar una gran cantidad de validaciones de datos personalizadas y detectar errores para alertar al usuario.

El sistema de validaciones es importante en cualquier desarrollo backend, porque justamente en este entorno es donde podemos estar seguros que las validaciones se van a ejecutar tal como esperamos que se ejecuten. Todos los frameworks vienen con un conjunto de validaciones amplio y Laravel no es una excepción.

Las validaciones se realizan generalmente en los controladores, creando una capa de seguridad que se debe procesar antes de solicitar acciones a los modelos, como guardar la información suministrada por el usuario, actualizarla, etc.

Editar

Validaciones Laravel

Laravel Artisan

La CLI de Laravel se conoce como Artisan. Consiste en un comando disponible en los proyectos Laravel mediante el cual se pueden realizar múltiples acciones habituales.

Una de las principales herramientas que nos ofrecen los frameworks son los comandos de terminal para resumir acciones comunes de desarrollo o mantenimiento de las aplicaciones. Básicamente consiste en un software que se activa por comandos al que se conoce comunmente como "CLI" (Command Line Interface).

El CLI de Laravel se conoce como "Artisan" y ofrece una cantidad enorme de acciones a realizar sobre los proyectos. Algunas de ellas son las siguientes:

  • Scaffolding: permite la creación del esqueleto de numerosos artefactos como controladores, modelos, policies, etc.
  • Migraciones: permite trabajar con la base de datos para todo el tema de las migraciones
  • Mantenimiento: permite realizar acciones de mantenimiento como la limpieza de las diversas cachés que usa Laravel para vistas, rutas o configuraciones.
  • Sistema de archivos: permitiendo crear un enlace simbólico entre el almacenamiento y la raíz de publicación del proyecto.
  • Sistema de colas: lo que permite manejar las colas de trabajos en segundo plano

Estas son solo unas de las posibilidades del comando artisan. Para ver todos los tipos de operaciones disponibles con Artisan lanzamos el comando:

php artisan list

Si en algún momento necesitas obtener ayuda del comando artisan o cualquiera de los comandos que nos ofrece, puedes usar el flag --help, de esta forma:

php artisan --help

Incluso puedes ver ayuda de los subcomandos usando el mismo flag:

artisan migrate --help

De este modo te puedes enterar de muchas personalizaciones que Laravel Artisan dispone para cada comando.

Editar

Laravel Artisan

Colecciones Laravel

Las colecciones de Laravel permiten almacenar conjuntos de elementos y proveen una cantidad de métodos de utilidad para trabajar con ellos.

Las colecciones son una de las herramientas más importantes y utilizadas al desarrollar con el framework Laravel. Sirven para trabajar con conjuntos de elementos, siendo algo similar a lo que conocemos como los arrays en PHP, pero extendidos con numerosas funcionalidades.

Las colecciones permiten crear conjuntos indexados de manera numérica e indexados por medio de índices de cadena, igual que los arrays de PHP, con la diferencia que las colecciones funcionan como objetos y tienen una cantidad de métodos enorme que se ejecutan en el contexto de esos objetos-colección. Laravel provee de una cantidad enorme de métodos para resolver tareas comunes y no tan comunes.

Editar

Colecciones Laravel

Preguntas y respuestas de Laravel

Se han recibido 53 faqs en Laravel

Hacer una pregunta