PHP: Tutorial Laravel - Estructura de un Proyecto - Parte 2

Sin duda saber como se organiza nuestro código en cualquier proyecto es la base para construir mejores y potentes aplicativos en la Web, aquí te dejo más una parte de este humilde Tutorial!
Compartir:

Estructura De Un Proyecto Laravel

Al haber instalado Laravel con el Composer se nos generará una estructura de carpetas y archivos que nos permitiran organizar nuestro código de la mejor forma. En esta parte del tutorial comento los más importantes, veamos la figura:
En esta Imagen podemos claramente ver la estructura de los archivos generados al crear nuestro "proyecto1". Este "proyecto1" fué creado en la parte 1 de nuestro Tutorial, para quien aún no lo vió, les dejo el link: Instalación y Configuración de Laravel
 Como podemos apreciar en la figura un proyecto creado con Laravel nos genera las siguientes carpetas:
  • La Carpeta app que es la carpeta que contiene el código principal de la aplicación. Esta a su vez esta dividida en muchas subcarpetas entre las cuales analizamos las más importantes:
    • app/Http/Controllers: Esta carpeta contiene todos los archivos con las clases de los controladores, no dejemos de tener en nuestra mente el nombre de esta carpeta! ya que nos servirá para interactuar con los modelos, las vistas y manejarán la lógica de la aplicación.
    • app/Http/Middleware: Los archivos contenidos en esta carpeta proporcionan un mecanismo conveniente para filtrar peticiones HTTP que ingresan a su aplicación; Por ejemplo Laravel incluye un middleware que verifica que el usuario de su aplicación esté autenticado; si por acaso el usuario no está autenticado, el middleware redirigirá al usuario a la pantalla para que inicie sesión. Sin embargo, en caso el usuario esté autenticado permitirá que el usuario continue en la aplicación. Y por supuesto, se pueden crear más archivos MiddleWare para realizar más tareas además la autenticación
  • routes: En esta carpeta pues encontramos todos los documentos que definen las rutas de nuestro sitio web, enlazando una URL del navegador con un método de un controlador. Además de eso, nos permite hacer validaciones (mediante Middleware) y otras operaciones sobre las rutas de nuestro sitio.  
  • La Carpeta Bootstrap que incluye el código que se carga para procesar las llamadas a nuestro proyecto. Normalmente no hacemos modificaciones en esta carpeta.
  • La carpeta Config es una de las más importantes y que contiene los archivos de configuración de nuestro aplicativo, como:
    • la base de datos "database.php",
    • el cache de nuestro aplicativo "cache.php" y otros no menos importantes!, de esto comentaremos más adelante.
  • La Carpeta Database que incluye todo lo relacionado con la definición de la base de datos de nuestro proyecto. Dentro de ella podemos encontrar 3 carpetas: factories, migrations y seeds; las cuales estaremos analizando en profundidad en los próximos capítulos cuando desarrollemos nuestros primeros aplicativos.
  • Ahora viene la carpeta public es la única carpeta pública, sí mis amigos la única que debería ser visible en nuestro servidor web (Para nuestro caso Apache). Todas las peticiones y solicitudes a la aplicación pasan por esta carpeta, ya que en ella se encuentra el archivo index.php que es el archivo que inicia todo el proceso de ejecución del FrameWork. En esta carpeta también se alojan los archivos CSS, JavaScript, las imágenes y otros archivos que se quieran hacer públicos!
  • Siguiendo, nos encontramos con la carpeta resources la cual contiene a su vez 3 carpetas que no podemos dejar de explicar ya que son importantísimas que las entienda para comenzar a trabajar!, veamos:
    • resources/views: Esta carpeta ubicada dentro de la carpeta resources, nos ofrece las vistas de nuestro proyecto. En general suelen ser plantillas HTML usadas por los controladores para mostrar la información. Hay que tener en cuenta que en esta carpeta no se almacenan los CSS, JavaScript o imágenes, que estarán sí en la carpeta public.
    • resources/lang:  Esta carpeta no menos importante que views, contiene los archivos php que contienen arrays con los textos de nuestro sitio web en diferentes idiomas; ojo solo la usaremos en caso de que la aplicación se desee traduzir.
    • resources/assets:  Esta tercera carpeta es utilizada para almacenar las fuentes de los assets tipo less o sass que se tienen que compilar para generar las hojas de estilo (CSS) públicas. No es necesario usar esta carpeta en el caso de que tengamos las hojas de estilo CSS en la carpeta public.
  • Ahora viene la carpeta storage como su nombre lo dice, esta almacena toda la información interna necesaria para la ejecución de la web, como son los archivos de sesión, la caché, la compilación de las vistas, meta información y los logs del sistema. Generalmente usamos poco esta carpeta, algunas veces cuando necesitamos consultar los logs.
  • Recorriendo la imagen nos topamos con la carpeta tests: Esta contiene los archivos necesarios para que se ejecuten las pruebas automatizadas de nuestro proyecto. Laravel incluye un sistema que facilita todo el proceso de pruebas con el PHPUnit, el cual detallaremos más adelante!.
  • Pues para terminar con las carpetas, encontramos la carpeta vendor que es donde se alojan todas las librerías y dependencias que conforman el frameWork de Laravel. Esta carpeta tampoco la tenemos que modificar, ya que todo el código que contiene son librerías que se instalan y actualizan mediante la herramienta Composer.
Ahora comentaré 2 de los archivos sueltos que estan a continuación de las carpetas de nuestro proyecto:
  • .env: Este archivo no es menos importante que otros y se utiliza para almacenar los valores de configuración que son propios de la máquina o instalación actual. Nos permite cambiar fácilmente la configuración según la máquina en que se instale y tener varias opciones para nuestra producción, para distintos desarrolladores, etc. Es importante recalcar que este archivo debe estar en el .gitignore (osea que es un archivo que el sistema GIT debe ignorar y dejarlo sin seguimiento en su proceso, para no verse afectado!; más adelante haremos un tutorial sólo de GIT).
  • composer.json: Este archivo es utilizado por Composer para realizar la instalación del Laravel. En una instalación únicamente se especificará la instalación de un paquete, el propio framework de Laravel, pero podemos especificar la instalación de otras librerías o paquetes externos que añadiran funcionalidad a Laravel.
Con esto termino este capítulo, dejando para un próximo momento los demás archivos y carpetas que analizaremos mejor ya manejandolas cuando creemos nuestros proyectos aquí en este Site.
Espero haber sido claro y no olviden de dejar sus comentarios que son el motivo de cada parte de este tutorial!   
Compartir:
Localización Gov. Celso Ramos, SC, Brasil

Aplicativo PHP

Framework Laravel

Framework PHP

Laravel PHP

Déjenos su Comentário:

1 comments: