¿Qué es Laravel?

Laravel - Taylor Otwell - laravel.comLaravel es uno de los frameworks de código abierto más fáciles de asimilar para PHP. Es simple, muy potente y tiene una interfaz elegante y divertida de usar. Fue creado en 2011 y tiene una gran influencia de frameworks como Ruby on Rails, Sinatra y ASP.NET MVC.

En este artículo, explicamos las principales ventajas y nuevas funcionalidades de Laravel 5.

El objetivo de Laravel es el de ser un framework que permita el uso de una sintaxis refinada y expresiva para crear código de forma sencilla, evitando el “código espagueti” y permitiendo multitud de funcionalidades. Aprovecha todo lo bueno de otros frameworks y utiliza las características de las últimas versiones de PHP.

La mayor parte de su estructura está formada por dependencias, especialmente de Symfony, lo que implica que el desarrollo de Laravel dependa también del desarrollo de sus dependencias.

Características Generales

  • Sistema de ruteo, también RESTful
  • Blade, Motor de plantillas
  • Peticiones Fluent
  • Eloquent ORM
  • Basado en Composer
  • Soporte para el caché
  • Soporte para MVC
  • Usa componentes de Symfony
  • Adopta las especificaciones PSR-2 y PSR-4

Cambios, mejoras y añadidos en la versión 5

Rutas. Almacenamiento en caché de rutas y middleware, son dos de las nuevas funcionalidades añadidas a esta versión.

Inyección de dependencias en rutas y controladores. Ahora se puede escribir cualquier dependencia en tus métodos.

Authentication Scaffolding. Por defecto, ahora el flujo de autenticación está preinstalada y ejecutada para ti, y se han introducido dos nuevas características: AuthenticatesAndRegistersUsers y ResetsPasswords.

Socialite. Con este paquete opcional te permitirá controlar OAuth de forma más óptima.

Estructura de carpetas.Se ha cambiado la estructura del directorio y se han movido fuera de la aplicación, como config, la base de datos, almacenamiento y recursos. Dentro se encuentran divididas en carpetas adicionales como comandos, consola, eventos, excepciones, manejadores, http, proveedores, servicios.

Cambios en Blade. En el conocido sistema de plantillas ha habido un cambio significativo. Antes teníamos dos estilos: {{{ para escapar y {{ si no se deseaba escapar la información. Ahora tanto {{{ como {{ se escapan/purifican y se utiliza {!! $var !!} si no se desea escapar la información.

Contracts. Para que sirvan como documentación, este conjunto de interfaces define los servicios elementales suministrados por Laravel.

Comandos y eventos. Nuevos cambios en los siguientes recursos:

Laravel 5 Events Video
Laravel 5 Commands Video
Commands & Handlers
Events & Handlers

Fachadas y ayudas.  Existen nuevas funciones de ayuda que reemplazan algunos de los items más frecuentes.
Antes:

 View::make('path.to.view');

Ahora:

view('path.to.view');

Flysystem. Esto permite cambiar fácilmente a control remoto. Los adaptadores actuales son:

  • Local
  • Amazon Web Services – S3
  • Rackspace Cloud Files

dotenv – Environmental Detection. Este paquete de PHP carga las variables del entorno de .env to getenv(), $_ENV y $_SERVER automáticamente. Con la nueva versión se simplifica la gestión de entornos. En vez de tener que modificar bootstrap/start.php y customizar la matriz $app->detectEnvironment() , ahora podemos crear nuestro propio archivo .env, personalizarlo y luego utilizar algo como:

'database' => env('DB_DATABASE’, 'myproddb'),

Form requests. La autenticación y validación pueden convertirse en FormRequest e inyectarse fácilmente.

Laravel Elixir. Laravel Elixir provee de un API limpia y fluida para definir tareas de Gulp en tus aplicaciones Laravel. Elixir soporta varios pre-procesadores CSS y JavaScript, e incluso herramientas de testing.

Laravel Schedule. Una nueva funcionalidad es el planificador de artisan (scheduler). Su funcionamiento es dump sencillo, añadimos el comando php artisan schedule:run al cron del sistema (cada minuto) y nuestras tareas se ejecutarán cuando lo indiquemos.

New dd(). Ahora se utiliza el componente VarDumper, que proporciona mecanismos para cualquier variable arbitraria de PHP, ofreciendo una mejor función dump () que puede utilizar en lugar de var_.

Eloquent Attribute Casting. Permite convertir los atributos a otro tipo de datos.

Adiós a los Whoops. Se ha eliminado ese controlador de errores.

Packages and Workbench. Se ha eliminado el paquete Workbench y ahora se utilizan directamente los Composer.

Psysh. Tinker, el CLI utiliza ahora Psysh, una consola en tiempo de ejecución, debugger y REPL (Read-Eval-Print Loop) para PHP.

SuperClosure. Esta nueva biblioteca se utilizará para cierres de serialización y funciones anónimas.

Nuevos generadores. Más potencia para Artisan que ahora incluye los siguientes generadores:

make:command — Crea un nuevo command class
make:console — Crea un nuevo Artisan command
make:controller — Crea un nuevo resource controller class
make:event — Crea un nuevo event class
make:middleware — Crea un nuevo middleware class
make:migration — Crea un nuevo migration file
make:model — Crea un nuevo Eloquent model class
make:provider — Crea un nuevo service provider class
make:request — Crea un nuevo form request class
event:generate — Genera una lista con los controladores y eventos perdidos

Conclusiones

Laravel es una excelente herramienta de software para el desarrollo diario y dispone de algunos de los factores claves que hacen que un proyecto tenga éxito:

  • No necesita de requerimientos raros sobre el stack de publicación.
  • La documentación existente en la red es buena y completa.
  • La comunidad que apoya este proyecto es enorme y sigue creciendo.