Usuario:ManuelRomero/micursos/Laravel/EstructuraProyecto

Estructura de directorios

 * Al crear un proyecto Laravel, Lo primero que sorprende es la gran cantidad de ficheros que tiene sin haber escrito absolutamente una solo línea de código.
 * Esto puede parecer desmotivador, pero no debe de serlo, no tenemos que conocer qué hace cada uno de esos 1011 directorios o 4557 ficheros
 * Estos valores son el resultado de hacer un tree de un directorio de un proyecto laravel nada más crearlo.
 * Aunque según se desarrollen los proyectos se van comprendiendo y ubicando cada uno de estos directorios junto con los ficheros que conllevan, conviene tener una visión general de la estructura del proyecto.
 * podemos ver una imagen la versión 5.8 de Laravel (marzo 2019)

Directorio Raiz

 * En este directorio es dónde básicamente vamos a desarrollar nuestra aplicación
 * Prácticamente la mayoría de los ficheros que tenemos que manipular se encuentran en esta carpeta.
 * Empezaremos moviéndonos dentro del directorio Http, donde se especifican las rutas de nuestro proyecto y los controladores.
 * Este es un directorio que hay que aprender nada más empezar con Laravel app/Http
 * Directoria App
 * Como hemos comentado es un directorio fundamental, sería el directorio de la aplicación
 * Dentro de él, el subdirectorio Http contiene elementos importantes:
 * Controladores (Controllers).
 * Filtros o Middleware.
 * La carpeta de modelos que antes estaba junto con estas carpetas, ha cambiado a partir de la versión 5
 * Directorio bootstrap
 * No tiene que ver con el framework de css bootstrap, si no con el proceso de arranque.
 * Unos ficheros php que se ejecutan en el arranque del inicio de la aplicación.


 * Directorio config
 * Es el directorio donde se ubican los ficheros de configuración
 * Es un directorio importante donde tendremos que ir en varias ocasiones
 * La configuración de la aplicación estará en app.php
 * La configuración de la/s base/s de datos que tengamos en nuestra aplicación en databas.php.
 * La autentificación en auth.php
 * Otros aspectos como vistas, sesiones, mail, cache.

Directorio database

 * Contiene los ficheros para gestionar lo que es la adminstracion de bases de datos desde el propio proyecto de laravel.
 * Como veremos podemos ir llevando de una forma constructiva las diferentes versiones de la base de datos
 * Es decir podemos reproducir los diferentes estados de una base de datos y transportarlo a cualquier otro proyecto
 * Gestionar la población de la base de datos también se puede hacer aquí

Directorio public

 * El el directorio público de nuestro proyecto
 * Es como el var/www cuando hacemos un proyecto de los que estamos habituados
 * Lo que aquí ponemos queda expuesto al exterior
 * Aquí deberán de estar los css, los ficheros javascript, música e imágenes que queremos publicar en nuestro sitio web
 * Igualmente aquí están los ficheros
 * 1) index.php (Fichero de entrada para el ciclo de vida de una app en laravel)
 * favico.ico
 * .htacess
 * robots.txt

Directorio resources

 * Importante este directorio por la vistas
 * En el guardaremos las vistas de nuestra aplicación
 * Laravel, como ya hemos comentado usa para vistas el gestor de plantillas Blade (nosotros usamos smarty, es parecido, conceptualmente igual, pero con su sintaxis y semántica particular).
 * También en el guardaremos traducciones a otros idiomas, etc

Directorio routes

 * Directorio usado por el framework para guardar ficheros que va generando
 * Ficheros de cache o las plantillas compiladas (Al igual que smarty, blade es un sistema de plantillas compiladas)

Directorio storage

 * Directorio usado por el framework para guardar ficheros que va generando
 * Ficheros de cache o las plantillas compiladas (Al igual que smarty, blade es un sistema de plantillas compiladas)

Directorio vendor

 * Directorio donde se encuentran los ficheros con una compleja estructura de directorios y subdirectorios donde laravel tiene su propio kernel o motor para funcionar
 * Totalmente gestionada por composer nosotros no debemos de tocar esta maravilla de software, solo disfrutarla(que hace mucho trabajo por nosotros).

https://www.youtube.com/watch?v=KWsEL45qeyQ