Estructura de un proyecto en Laravel

Todos los proyectos nuevos en Laravel 5.4 tienen la siguiente estructura de directorios:

A continuación describiremos los directorios y archivos más importantes para que nos ayuden a entender más el funcionamiento del framework.

El directorio app

App es usado para ofrecer un hogar por defecto a todo el código personal de tu proyecto. Eso incluye clases que puedan ofrecer funcionalidad a la aplicación, archivos de configuración y más. Es considerado el directorio más importante de nuestro proyecto ya que es en el que más trabajaremos.

El directorio app tiene a su vez otros subdirectorios importantes pero uno de los más utilizados es el directorio Http en el cuál ubicaremos nuestrosControllers y Middlewares en sus carpetas correspondientes, además dentro del subdirectorio Http encontremos también el archivo Kernel.phpdonde escribiremos las rutas para la implementación de nuestros Middlewares de la aplicación.

A nivel de la raíz del directorio app encontraremos el modeloUser.php, los modelos comunmente se ubicarán a nivel de la raíz de la carpeta app aunque igual es posible estructurarlos de la forma que queramos, por ejemplo, en una carpeta llamadaModels.

El directorio Bootstrap

El directorio bootstrap contiene archivos que se inicializan del framework y configura el autoloading. Este directorio también contiene un directorio cache que contiene archivos generados por el framework para la optimización del rendimiento, como la ruta y los archivos de caché de servicios.

El directorio config

La configuración tanto para el framework como para tu aplicación se mantiene en este directorio. La configuración de Laravel existe como un conjunto de archivos PHP que contienen matrices clave-valor. Entre los archivos más usados del directorio config se encuentran:

  • app.php : En este archivo nos puede interesar configurar el lenguaje de nuestra aplicación, la zona horaria, los providers y aliases de las clases más comunes.
  • database.php : En este archivo podemos configurar principalmente el motor de base de datos al cuál deseamos conectarnos.

El directorio database

Aquí se encontraran los archivos relacionados con el manejo de la base de datos. Dentro de este directorio se encuentran los subdirectorios:

  • factories : Aquí escribiremos nuestros model factories.
  • migrations : Todas las migraciones que creamos se ubican en este subdirectorio.
  • seeds : Contiene todas las clases de tipo seed.

El directorio public

Dentro de este directorio colocaremos todos los recursos estáticos de nuestra aplicación, es decir, archivos css, js, imágenes y fuentes.

Es recomendable crear una carpeta por cada tipo de recurso.

El directorio resources

Dentro de este directorio se encuentran los subdirectorios:

  • assets: Aquí se ubican todos los archivos less de nuestra aplicación (útil para desarrolladores front-end).
  • lang: Aquí se encuentran todos los archivos de internacionalización, es decir, los archivos para poder pasar nuestro proyecto de un idioma a otro. Normalmente habrá una carpeta por cada idioma, ejemplo:
    • en : idioma inglés
    • es : idioma español
  • views: Aquí ubicaremos nuestras vistas en formato php o php.blade, es recomendable crear una carpeta por cada controlador, además agregar una carpeta templates para las plantillas. Una plantilla es una vista general, que tiene segmentos que pueden ser reemplazados mediante la herencia de plantillas, más adelante se hablará de este tema.

El directorio Routes

El directorio de rutas contiene todas las definiciones de ruta para su aplicación. De forma predeterminada, se incluyen varios archivos de ruta con Laravel: web.php, api.php, console.php y channels.php.

web.php: Contiene rutas que el RouteServiceProvider coloca en el grupo de middleware web, que proporciona estado de sesión, protección CSRF y cifrado de cookies. Si su aplicación no ofrece una API apátrida, RESTful, es probable que todas sus rutas se definan en el archivo web.php.

api.php: Contiene rutas que el RouteServiceProvider coloca en el grupo de middleware de api, lo que proporciona una limitación de velocidad. Estas rutas están destinadas a ser apátridas, por lo que las solicitudes de entrada en la aplicación a través de estas rutas están destinados a ser autenticados a través de tokens y no tendrán acceso al estado de la sesión.

console.php: Es donde puede definir todos sus comandos de consola basados ​​en Cierre. Cada cierre está enlazado a una instancia de comando que permite un enfoque sencillo para interactuar con los métodos de E / S de cada comando. Aunque este archivo no define rutas HTTP, define puntos de entrada basados ​​en consola (rutas) en su aplicación.

channels.php: Es donde puede registrar todos los canales de difusión de eventos que su aplicación admite.

El directorio storage

Cuando Laravel necesita escribir algo en el disco, lo hace en el directorio storage . Por este motivo, tu servidor web debe poder escribir en esta ubicación. Aquí podemos encontrar otros directorios entre los cuales el más relevante es el subdirectorio framework, es ahí donde se almacena el cache y las vistas compiladas.

El directorio tests

El directorio de tests contiene sus pruebas automatizadas. Un ejemplo PHPUnit se proporciona fuera de la caja. Cada clase de prueba debe tener el sufijo con la palabra Test. Puede ejecutar las pruebas utilizando los comandos phpunit o`**php vendor /bin/phpunit**.`

El archivo .env y .env.example

El archivo .env no existe cuando instalamos laravel a travéz de la descarga del repositorio debido a que este archivo esta agregado en el .gitignore en el caso de instalar laravel por composer o por el mismo instalador de laravel, este archivo si se encuentra dentro de la carpeta del proyecto, en este archivo se configurará el modo en que se ejecuta nuestra aplicación, por defecto será el modo debug, además podemos configurar la conexión a la base de datos y la conexión con el servidor de correo electrónico. En el caso de instalar laravel descargandolo del repositorio, realizaremos los siguiente, el archivo .env lo creamos copiando el archivo .env.example y renombrar la copia como .env.

Por motivos de seguridad de la base de datos el archivo .env nunca se sube cuando hacemos un push en nuestro repositorio. Es por eso que aparece escrito dentro del archivo .gitignore en la raíz de nuestro proyecto.

results matching ""

    No results matching ""