Laravel es un
Framework de rápido desarrollo de apps en PHP y el proyecto más popular en la comunidad PHP a nivel de crecimiento. Invertir en Laravel hoy vale la pena.
NO ENTRES EN PÁNICO: Si antes de conocer Laravel, usabas PHP normal, será un pequeño shock dejar de soltar archivos .php donde caiga. Laravel tiene una estructura muy ordenada. Sólo te toma 5 minutos entenderla. Este artículo es una guía para que lo logres.
La arquitectura de Laravel es un flujo de comunicación entre el
Foundationdel framework, los
Services Providers, una estructura de Controllers con
Middlewaresy una capa de servicios que se comunica con el acceso a datos del
ORM y al final, con la base de datos.
Elementos de la arquitectura básica de una app en Laravel
El
Foundation es el núcleo del framework, que en teoría nunca deberías tocar. Es código de Laravel que no es parte de tu app. Está en la carpeta
vendor. Pero si usas Composer, se descargará automáticamente.
Los
Services Providers son la base del inicio de tu aplicación. Están encargados de arrancar tu app y ahí encontrarás la conexión entre el
Foundation de Laravel y las rutas de la app, interfaces, objetos de servicios, containers, eventos, errores, etc. La configuración de toda tu app pasa por los
Service Providers.
Los
Middlewares son objetos que cubren las cosas que
siempre necesitas en una web app. Cosas como cifrado (encriptación) de cookies, autenticación y usuarios, protección contra CSRF y XSS, etc.
El
ORM es el acceso a la base de datos. En lugar de escribir SQL directo (que también puedes, si quieres), usa el método de PHP, similar al
Active Record de Rails. Las consultas a través del ORM de Laravel ya están optimizadas y te protegerán de vergonzosos SQL Injections. Además de hacerte la vida más fácil.
Estructura de carpetas
Al empezar una nueva aplicación con Laravel, se creará
una estructura muy ordenada de directorios que nos facilitará trabajar con él. Con Composer, arrancas esta estructura, ejecutando el comando:
[code]composer create-project laravel/laravel mi-proyecto-maravilloso[/code]
Esto creará la estructura, en la carpeta donde tengas la linea de comandos. Dentro de una carpeta llamada "
mi-proyecto-maravilloso".
(El
curso de PHP de Platzi trae una clase bonus de Composer)
El uso de
convención sobre configuración genera un ambiente muy estandarizado que facilita, incluso, el integrar nuevos programadores a tus desarrollos.
El directorio de una aplicación de Laravel se ve de la siguiente forma:
app
Esta carpeta es en donde vivirá la mayor parte del código de tu proyecto.
La inmensa mayoría del código de tu proyecto será creado acá. Aquí encontrarás directorios como
Console,
HTTP, que funcionan como una API al núcleo de tu aplicación.
Otras carpetas corresponden a patrones de diseño orientado a objetos, que puedes usar dentro de Laravel. Si nunca has usado patrones de diseño, el
Curso de PHP y Laravel te los enseña.
bootstrap
Esta carpeta no la toca nadie nunca. Son archivos autogenerados por Laravel para arrancar tu app.
config
A diferencia de Symphony, que usa XML y otras cosas feas, Laravel configura con arrays de PHP. Como debe ser. Los archivos donde se declaran esos arrays están en esta carpeta.
La configuración común a todos los entornos está acá. En el resto de tu app, puedes leer esto con el objeto
Config.
Laravel es genial.
database
En Laravel, las bases de datos y su estructura interna requiere ser entendida antes de iniciar a programar. Esto se logra a través de
migraciones. Además, existen
semillas para generar datos de prueba, entre otras herramientas. Para eso es esta carpeta. Opcionalmente puede ser usada para almacenar una base de datos SQLite.
Una opción adicional son
Factories, que son clases donde defines objetos y generas datos falsos, que se convertirán en el modelo de datos de tu base de datos.
public
El contenido de esta carpeta será accesible por tus usuarios. Almacena acá los archivos estáticos de tu aplicación.
Coloca aquí los archivos html, javascript, css, vídeos e imágenes. Si usas gulp o Laravel Elixir, los archivos serán automáticamente ubicados acá.
resources
Aquí se guardan los archivos de
vistas y raw assets (LESS, SASS, CoffeeScript). Es decir, acá está el Frontend de la aplicación. Además están archivos de traducción, si tienes una app multilenguaje.
storage
Es la carpeta temporal de Laravel. Se autogeneran logs, cache de templates, etc. No te preocupes por ella.
tests
Una de mis secciones favoritas, aquí se guardan
las clases responsables de realizar el unit testing a los diversos componentes de tu aplicación. Laravel, por defecto, usa PHP Unit para hacer testing.
vendor
Esta carpeta es administrada por Composer. Aquí verás las dependencias y librerías del proyecto.
Aquí vive Laravel.
Esto es sólo una pequeña parte de todo lo que puedes aprender en el
Curso de PHP con Laravel. Regístrate hoy y aprende a programar aplicaciones con el lenguaje más popular en internet usando uno de los frameworks más poderosos que existen.
ORM ELoquent, Herramienta con la cual, mapeamos nuestra base datos, para realizar los respectivos CRUD’S de nuestras aplicaciones.
Nice