Marco de aplicación web de código abierto, escrito en PHP
Laravel es un marco web gratuito y de código abierto basado en PHP para crear aplicaciones web. [3] Fue creado por Taylor Otwell y destinado al desarrollo de aplicaciones web siguiendo el patrón arquitectónico modelo-vista-controlador (MVC) y basado en Symfony . Algunas de las características de Laravel incluyen un sistema de empaquetado modular con un administrador de dependencias dedicado, diferentes formas de acceder a bases de datos relacionales , utilidades que ayudan en la implementación y el mantenimiento de aplicaciones y su orientación hacia el azúcar sintáctico . [4] [5] : 2, 5–9 [6] [7]
El código fuente de Laravel está alojado en GitHub y tiene la licencia según los términos de la licencia MIT . [8]
Historia
Taylor Otwell creó Laravel como un intento de proporcionar una alternativa más avanzada al marco CodeIgniter , que no proporcionaba ciertas funciones, como soporte integrado para autenticación y autorización de usuarios . La primera versión beta de Laravel estuvo disponible el 9 de junio de 2011, seguida por la versión Laravel 1 más tarde ese mismo mes. Laravel 1 incluía soporte integrado para autenticación, localización , modelos , vistas , sesiones , enrutamiento y otros mecanismos, pero carecía de soporte para controladores que le impedían ser un verdadero marco MVC . [1]
Laravel 2 se lanzó en septiembre de 2011 y trajo varias mejoras por parte del autor y la comunidad. Las principales características nuevas incluyeron soporte para controladores, lo que convirtió a Laravel 2 en un marco totalmente compatible con MVC, soporte integrado para el principio de inversión de control (IoC) y un sistema de plantillas llamado Blade . Como desventaja, se eliminó la compatibilidad con paquetes de terceros en Laravel 2. [1]
Laravel 3 se lanzó en febrero de 2012 con un conjunto de nuevas características que incluyen la interfaz de línea de comandos (CLI) cmd llamada Artisan , soporte integrado para más sistemas de administración de bases de datos , migraciones de bases de datos como una forma de control de versiones para diseños de bases de datos, soporte para manejo de eventos y un sistema de empaquetado llamado Bundles . Un aumento de la base de usuarios y la popularidad de Laravel se alineó con el lanzamiento de Laravel 3. [1]
Laravel 4, con nombre en código Illuminate , se lanzó en mayo de 2013. Se realizó como una reescritura completa del marco de Laravel, migrando su diseño a un conjunto de paquetes separados distribuidos a través de Composer , que sirve como administrador de paquetes a nivel de aplicación . Este diseño mejoró la extensibilidad de Laravel 4, que se combinó con su calendario oficial de lanzamiento regular que abarca seis meses entre lanzamientos menores . Otras características nuevas en la versión Laravel 4 incluyen la siembra de bases de datos para el llenado inicial de bases de datos, soporte para colas de mensajes , soporte integrado para enviar diferentes tipos de correo electrónico y soporte para la eliminación retrasada de registros de bases de datos llamada eliminación temporal . [1] [9] : 18-19
Laravel 5 se lanzó en febrero de 2015 como resultado de cambios internos que terminaron en renumerar la entonces futura versión Laravel 4.3. Las nuevas características de la versión Laravel 5 incluyen soporte para programar tareas ejecutadas periódicamente a través de un paquete llamado Scheduler , una capa de abstracción llamada Flysystem que permite usar el almacenamiento remoto de la misma manera que los sistemas de archivos locales , manejo mejorado de los activos del paquete a través de Elixir y Autenticación simplificada manejada externamente a través del paquete Socialite opcional . Laravel 5 también introdujo una nueva estructura de árbol de directorios internos para aplicaciones desarrolladas. [5] : 13-14 [10]
Lumen 5.0 es la versión inicial del marco Lumen, un derivado ligero de Laravel optimizado para la velocidad. [11] Esta versión inicial se basa en la serie Laravel 5.x de componentes PHP, y las siguientes versiones reflejan las versiones de Laravel con las que comparte infraestructura común. [12] A partir de 2022, los autores ya no recomiendan el uso de Lumen para obtener estas ventajas y, en su lugar, promueven Laravel Octane. [13]
Laravel 5.1, lanzado en junio de 2015, fue la primera versión de Laravel en recibir soporte a largo plazo (LTS). Se planearon nuevas versiones LTS cada dos años. [14]
Laravel 5.3 se lanzó el 23 de agosto de 2016. Las nuevas funciones de 5.3 se centran en mejorar la velocidad del desarrollador agregando mejoras adicionales listas para usar para tareas comunes. [15]
Laravel 5.4 se lanzó el 24 de enero de 2017, con muchas características nuevas como Laravel Dusk, Laravel Mix, componentes y ranuras Blade, correos electrónicos de rebajas, fachadas automáticas, mejoras de ruta, mensajes de orden superior para colecciones y muchas otras. [16]
Laravel 6 se lanzó el 3 de septiembre de 2019. Incorporaba generación de código de plano de turno, control de versiones semántico, compatibilidad con Laravel Vapor, respuestas de autorización mejoradas, middleware de trabajo mejorado, colecciones diferidas y mejoras de subconsultas. El andamiaje frontal se eliminó del paquete principal y se trasladó al paquete laravel/ui. [17]
Laravel 7 se lanzó el 3 de marzo de 2020, con nuevas funciones como Laravel Sanctum, Eloquent Casts personalizados, etiquetas de componentes Blade, operaciones de cadena fluidas y mejoras en el enlace del modelo de ruta. [18]
Laravel 8 se lanzó el 8 de septiembre de 2020, con nuevas funciones como Laravel Jetstream, clases de fábrica de modelos, eliminación de migraciones, Tailwind CSS para vistas de paginación y otras mejoras de usabilidad. [19]
Laravel 9 se lanzó el 8 de febrero de 2022. [12]
Laravel 10 se lanzó el 14 de febrero de 2023. [20]
Laravel 11 se lanzó el 12 de marzo de 2024. Se anunció en el blog de Laravel y otras redes sociales y también se discutió en detalle en Laracon EU en Ámsterdam del 5 al 6 de febrero. [21] Junto con Laravel 11, se lanzó un servidor websocket propio llamado Laravel Reverb.
Historial de lanzamientos
A partir de Laravel 5 y hasta Laravel 8, las versiones designadas LTS fueron compatibles con correcciones de errores durante 2 años y correcciones de seguridad durante 3 años. Otras versiones recibieron soporte con correcciones de errores durante 6 meses y correcciones de seguridad durante 1 año. [22] A partir de la versión 8, las versiones principales se lanzan anualmente y el cronograma de soporte se cambió para proporcionar a cada versión 18 meses de correcciones de errores y 2 años de correcciones de seguridad. Para bibliotecas adicionales, solo la última versión principal recibe correcciones de errores. [19]
Características
Laravel cuenta con una variedad de características que lo convierten en un marco integral para el desarrollo web:
- Eloquent ORM : la herramienta de mapeo relacional de objetos (ORM) de Laravel, Eloquent, permite a los desarrolladores interactuar con bases de datos utilizando una sintaxis orientada a objetos. Admite operaciones CRUD y proporciona una implementación de registro activo para trabajar con modelos de bases de datos.
- Enrutamiento : Laravel ofrece un mecanismo de enrutamiento incorporado que los desarrolladores pueden utilizar para definir rutas de aplicaciones. Esta característica incluye soporte para grupos de rutas, rutas con nombre y vinculación de modelos de ruta.
- Blade Templating Engine : Blade es un motor de plantillas propio que permite el uso de directivas PHP dinámicas en vistas basadas en HTML. Proporciona funciones como herencia de plantillas, secciones y declaraciones condicionales, que se pueden utilizar para crear contenido dinámico.
- Middleware : El middleware permite filtrar las solicitudes HTTP que ingresan a la aplicación. Se puede utilizar para diversas tareas, como autenticación, registro y gestión de encabezados CORS.
- Sistema de colas : Laravel incluye una API unificada para diferentes backends de colas, como Beanstalkd, Amazon SQS y Redis. Este sistema ayuda a gestionar tareas como enviar correos electrónicos o procesar datos en segundo plano, lo que puede mejorar el rendimiento de la aplicación.
- Transmisión : esta función permite la transmisión de datos en tiempo real mediante WebSockets. Ayuda a crear aplicaciones en tiempo real, como aplicaciones de chat y notificaciones.
- Programación de tareas : la función de programación de tareas incorporada permite la ejecución de tareas programadas dentro de la aplicación. Esta abstracción puede unificar la gestión de trabajos cron al permitir que se definan en la propia aplicación Laravel.
- Seguridad : Laravel incluye varias funciones de seguridad listas para usar, como protección CSRF, hash de contraseñas y cifrado. También proporciona varios métodos para validar y desinfectar la entrada del usuario.
- Andamio de autenticación : Laravel proporciona un andamio de autenticación integrado para manejar los procesos de registro de usuarios, inicio de sesión y restablecimiento de contraseña. Esta característica agiliza la implementación de la autenticación y administración de usuarios en aplicaciones web o mediante API .
Actuación
Laravel incluye una serie de funciones para ayudar a los desarrolladores a mejorar el rendimiento de sus aplicaciones.
- Almacenamiento en caché : Laravel proporciona un sistema de almacenamiento en caché basado en controladores que admite varios servidores como Memcached, Redis y almacenamiento en caché basado en archivos. El almacenamiento en caché puede mejorar significativamente el rendimiento de una aplicación al reducir la carga de la base de datos u otras tareas pesadas.
- Comandos de optimización : Laravel incluye varios comandos Artisan para optimizar el rendimiento del marco. Estos comandos se pueden utilizar para almacenar en caché archivos de configuración, rutas y vistas, lo que reduce la sobrecarga durante el tiempo de ejecución.
- Gestión de colas : al descargar tareas que consumen mucho tiempo en colas en segundo plano, las colas ayudan a mejorar la capacidad de respuesta de las aplicaciones. El sistema de colas de Laravel admite múltiples backends de colas, lo que ayuda a escalar la aplicación.
- Optimización de la base de datos : Eloquent ORM de Laravel incluye características como carga diferida, carga ansiosa y almacenamiento en caché de consultas, que ayudan a optimizar las consultas de la base de datos y mejorar el rendimiento.
Pruebas
Laravel incluye otros paquetes para crear conjuntos de pruebas.
- Pruebas unitarias : Laravel incluye PHPUnit y PestPHP, dos marcos de prueba PHP populares. También proporciona varias herramientas de prueba y afirmaciones para facilitar las pruebas unitarias de los componentes de la aplicación.
- Pruebas de funciones : Laravel permite a los desarrolladores escribir pruebas de funciones que simulan las interacciones del usuario y prueban el comportamiento de la aplicación desde la perspectiva del usuario. Esto garantiza que la aplicación funcione como se esperaba.
- Burlarse : Laravel se integra con Mockery, una biblioteca de burla, para permitir a los desarrolladores crear objetos simulados y definir expectativas para probar dependencias e interacciones.
- Pruebas del navegador : Laravel Dusk proporciona una API de prueba y automatización del navegador sin cabeza para pruebas de un extremo a otro. Permite a los desarrolladores probar toda la aplicación en un entorno de navegador real.
Seguridad
Laravel incluye una serie de herramientas para medidas de seguridad recurrentes que necesitarán la mayoría de las aplicaciones.
- Protección CSRF : Laravel genera y verifica automáticamente tokens CSRF para envíos de formularios, protegiendo contra ataques de falsificación de solicitudes entre sitios.
- Autenticación y autorización : Laravel proporciona servicios de autenticación integrados, que incluyen registro de usuario, inicio de sesión y restablecimiento de contraseña. También ofrece mecanismos de autorización simples y flexibles para administrar permisos y roles de usuarios.
- Cifrado : Laravel utiliza los estándares de cifrado AES-256 y AES-128 para proporcionar cifrado y descifrado seguros de datos. El marco incluye ayudas integradas para cifrar y descifrar cadenas.
- Validación : el sistema de validación de Laravel permite a los desarrolladores validar las entradas del usuario y protegerse contra datos maliciosos. Incluye una variedad de reglas de validación y admite una lógica de validación personalizada.
Línea de comando artesanal
La interfaz de línea de comandos (CLI) de Laravel , llamada Artisan , se introdujo inicialmente en Laravel 3 con un conjunto limitado de capacidades. La migración posterior de Laravel a una arquitectura basada en Composer permitió a Artisan incorporar diferentes componentes del marco Symfony , lo que resultó en la disponibilidad de características adicionales de Artisan en Laravel 4.
Las características de Artisan están asignadas a diferentes subcomandos de la utilidad de línea de comandos de Artisan , lo que proporciona una funcionalidad que ayuda a administrar y crear aplicaciones basadas en Laravel. Los usos comunes de Artisan incluyen la gestión de migraciones y siembra de bases de datos, la publicación de activos de paquetes y la generación de código repetitivo para nuevos controladores y migraciones; este último libera al desarrollador de crear esqueletos de código adecuados . La funcionalidad y capacidades de Artisan también se pueden ampliar mediante la implementación de nuevos comandos personalizados, que, por ejemplo, pueden usarse para automatizar tareas recurrentes específicas de la aplicación.
Laracón
Laracon es la conferencia oficial de Laravel centrada en el marco de Laravel, que cubre su desarrollo, usos y temas generales de desarrollo de software relacionados. Laracon se ha llevado a cabo en los Estados Unidos , Europa y en línea en el pasado. [28] [29] Por lo general, la conferencia se lleva a cabo en los Estados Unidos y Europa todos los años. 2017 fue el primer año en que se llevó a cabo un Laracón únicamente como un evento en línea. 2018 fue el primer año que se celebró un Laracón en Australia. Cada año, la conferencia tiene una variedad diferente de patrocinadores y organizadores, pero Laravel, Laravel News y UserScape suelen ser los organizadores principales.
Si bien las numerosas conferencias de Laracon se llevan a cabo oficialmente, otras conferencias se llevan a cabo bajo el nombre de Laravel Live. Actualmente, se celebran conferencias anuales Laravel Live UK, Laravel Live Denmark y Laravel Live India. [30] [31] [32] Si bien estos no se administran oficialmente, tienen el permiso de Taylor Otwell para usar el nombre Laravel.
Ver también
Referencias
- ^ abcde Maks Surguy (27 de julio de 2013). "Historia del framework PHP Laravel, Eloquence emergente". maxoffsky.com . Archivado desde el original el 27 de noviembre de 2020 . Consultado el 10 de mayo de 2015 .
- ^ "Versión 11.1.4". 16 de julio de 2024 . Consultado el 23 de julio de 2024 .
- ^ "Introducción a Laravel: un marco PHP para crear aplicaciones web de alta gama". www.w3schools.in . Consultado el 27 de marzo de 2024 .
- ^ Daniel Gafitescu (6 de junio de 2013). "Adiós CodeIgniter, hola Laravel". sitepoint.com . Archivado desde el original el 30 de noviembre de 2020 . Consultado el 21 de diciembre de 2013 .
- ^ ab Martin Bean (abril de 2015). Laravel 5 Esenciales. Paquete . ISBN 978-1785283017. Archivado desde el original el 19 de febrero de 2023 . Consultado el 2 de septiembre de 2015 .
- ^ "Documentación de Laravel (versiones 3.0–3.2.14)". tres.laravel.com . Archivado desde el original el 26 de agosto de 2014 . Consultado el 30 de agosto de 2014 .
- ^ "Documentación de Laravel (versión 4.2)". laravel.com . Archivado desde el original el 20 de septiembre de 2014 . Consultado el 30 de agosto de 2014 .
- ^ "laravel/framework: el marco de Laravel". github.com . Archivado desde el original el 16 de enero de 2023 . Consultado el 17 de enero de 2023 .
- ^ Raphaël Saunier (enero de 2014). Comenzando con Laravel 4 . Paquete . ISBN 978-1783287031. OCLC 868960968.
- ^ Eric Barnes (30 de enero de 2015). "Laravel5". laravel-news.com . Archivado desde el original el 11 de noviembre de 2016 . Consultado el 10 de mayo de 2015 .
- ^ "Presentación de Lumen de Laravel". Matt Stauffer . Archivado desde el original el 18 de agosto de 2022 . Consultado el 25 de julio de 2022 .
- ^ ab "Notas de la versión - Laravel - El marco PHP para artesanos web". laravel.com . Archivado desde el original el 10 de febrero de 2022 . Consultado el 12 de febrero de 2022 .
- ^ Sorgner, Stefan Lorenz (4 de noviembre de 2021), "El fin como un nuevo comienzo", Siempre hemos sido cyborgs , Policy Press, págs. 185–187, doi :10.1332/policypress/9781529219203.003.0005, ISBN 9781529219203, archivado desde el original el 19 de febrero de 2023 , consultado el 25 de julio de 2022
- ^ Eric L. Barnes (9 de junio de 2015). "Se lanza Laravel 5.1". laravel-news.com . Archivado desde el original el 12 de mayo de 2016 . Consultado el 14 de junio de 2015 .
- ^ Eric L. Barnes (23 de agosto de 2016). "Laravel 5.3 ya está lanzado". laravel-news.com . Archivado desde el original el 28 de agosto de 2016 . Consultado el 23 de agosto de 2016 .
- ^ "Ya se lanzó Laravel 5.4". Noticias de Laravel . 24 de enero de 2017. Archivado desde el original el 25 de noviembre de 2020 . Consultado el 21 de febrero de 2017 .
- ^ "Notas de la versión de Laravel 6". Laravel . Archivado desde el original el 30 de enero de 2021 . Consultado el 1 de noviembre de 2019 .
- ^ "Notas de la versión - Laravel - El marco PHP para artesanos web". laravel.com . Archivado desde el original el 10 de marzo de 2020 . Consultado el 9 de marzo de 2020 .
- ^ abc "Notas de la versión - Laravel - El marco PHP para artesanos web". laravel.com . Archivado desde el original el 21 de julio de 2021 . Consultado el 9 de mayo de 2020 .
- ^ ab "Se lanza Laravel 10". laravel-news.com . Archivado desde el original el 14 de febrero de 2023 . Consultado el 13 de febrero de 2023 .
- ^ LARACON EU 2024 // TAYLOR OTWELL :: ACTUALIZACIÓN DE LARAVEL , consultado el 19 de marzo de 2024
- ^ "Documentación de Laravel: lanzamientos". Laravel. Archivado desde el original el 23 de noviembre de 2020 . Consultado el 26 de febrero de 2017 .
- ^ "Notas de la versión del repositorio Github: Laravel". Laravel. Archivado desde el original el 3 de marzo de 2019 . Consultado el 2 de noviembre de 2019 .
- ^ abc "Laravel 9 ya está lanzado". 8 de febrero de 2022. Archivado desde el original el 17 de febrero de 2022 . Consultado el 9 de febrero de 2022 .
- ^ @laravelphp (12 de febrero de 2020). "Nuestro objetivo es lanzar Laravel 7.x..." ( Tweet ) - vía Twitter .
- ^ "Laravel: compatibilidad con PHP 8". Laravel. 26 de noviembre de 2020. Archivado desde el original el 23 de julio de 2021 . Consultado el 6 de agosto de 2021 .
- ^ ab "Laravel: el marco PHP para artesanos web". laravel.com . Consultado el 13 de marzo de 2024 .
- ^ "Laracon Online | La conferencia mundial oficial en línea de Laravel". laracon.net . Archivado desde el original el 16 de diciembre de 2020 . Consultado el 24 de marzo de 2017 .
- ^ "Resultados de la búsqueda". laravel-news.com . Archivado desde el original el 29 de mayo de 2020 . Consultado el 24 de marzo de 2017 .
- ^ "Laravel Live Reino Unido | Inicio". laravellive.uk . Archivado desde el original el 14 de agosto de 2020 . Consultado el 5 de agosto de 2020 .
- ^ "Laravel Live Dinamarca 2024".
- ^ "Comunidad Laravel Live India". Comunidad Laravel Live India . Archivado desde el original el 10 de agosto de 2020 . Consultado el 5 de agosto de 2020 .
Enlaces externos
Wikimedia Commons tiene medios relacionados con Laravel .