Estructura del proyecto

La estructura del proyecto sigue el patrón de diseño Modelo Vista Controlador (MVC), que separa la lógica de negocio, la presentación y la gestión de la información en tres componentes distintos.

Carpetas principales

El proyecto está organizado de la siguiente manera:

  • app/ : Contiene la lógica de la aplicación, incluidos los controladores, modelos y vistas.
  • config/ : Contiene archivos de configuración para la aplicación, como la configuración de la base de datos y las rutas.
  • database/ : Contiene las migraciones de la aplicación y los esquemas de base de datos.
  • lang/ : Contiene los archivos de idiomas, donde se pueden encontrar traducciones.
  • lib/ : Contiene los archivos de bibliotecas de la aplicación.
  • public/ : Contiene los archivos públicos accesibles desde el navegador, como imágenes, archivos CSS y archivos JavaScript.
  • resources/ : Contiene recursos de la aplicación, como archivos CSS, archivos JavaScript, vistas y componentes.
  • routes/ : Contiene los archivos de definición de rutas de la aplicación.
  • storage/ : Contiene archivos generados por la aplicación, como archivos de sesión, archivos de caché y archivos de registro.
  • tests/ : Contiene las pruebas unitarias de la aplicación.

Archivos principales

Los archivos principales del proyecto son:

  • index.php: El punto de entrada de la aplicación, que carga el autoloader y llama al kernel de la aplicación.
  • .env: Archivo de entorno que contiene variables de configuración como la conexión a la base de datos y la configuración de la aplicación.
  • composer.json: Archivo de configuración de Composer que especifica las dependencias del proyecto.
  • webpack.mix.js: Archivo de configuración de Laravel Mix para compilar recursos front-end.
  • package.json: Archivo de configuración de NPM que especifica las dependencias del proyecto.
  • console: Archivo de configuración de la consola de la aplicación.

Directorio principal - app/

El directorio app/ es uno de los directorios más importantes en la estructura de un proyecto JMFramework. Contiene la mayoría de la lógica de la aplicación, incluidos los controladores, modelos y vistas. A continuación se describe la estructura básica de este directorio:

  • Console/: Contiene comandos de Console, que se utilizan para realizar tareas de línea de comandos en la aplicación.
    • Commands/: Contiene las clases de comandos de Console, que pueden ser ejecutados desde la línea de comandos para realizar tareas específicas.
  • Http/: Contiene los controladores y middlewares de la aplicación.
    • Controllers/: Contiene los controladores de la aplicación.
    • Middleware/: Contiene los middlewares de la aplicación.
  • Models/: Contiene los modelos de la aplicación.

Configuración - config/

El directorio config/ contiene la configuración de la aplicación. A continuación se describe la configuración de la aplicación:

  • app.php: Archivo de configuración de la aplicación.
  • cache.php: Archivo de configuración de la cache.
  • cors.php: Archivo de configuración de CORS.
  • database.php: Archivo de configuración de la base de datos.
  • file.php: Archivo de configuración de archivos.
  • hash.php: Archivo de configuración de la generación de hashes.
  • middleware.php: Archivo de configuración de los middlewares.
  • session.php: Archivo de configuración de la sesión.
  • storage.php: Archivo de configuración de los archivos de almacenamiento.
  • token.php: Archivo de configuración de los tokens.
  • view.php: Archivo de configuración de la vista.

Migraciones y esquemas de base de datos - database/

El directorio database/ contiene las migraciones y esquemas de base de datos. Para saber más sobre la migración y el esquema de base de datos, dirijase a la documentación dando click en el enlace Migraciones y esquemas de base de datos.

Lenguaje - lang/

El directorio lang/ contiene los archivos de idiomas. A continuación se describe la configuración de idiomas:

  • en/: Contiene los archivos de idioma en inglés.
  • es/: Contiene los archivos de idioma en Español.

Para saber más sobre la configuración de idiomas, dirijase a la documentación dando click en el enlace Configuración de Idiomas.

Publico - public/

El directorio public/ contiene los archivos publicos. A continuación se describe la configuración de archivos publicos:

  • css/: Contiene los archivos CSS.
  • js/: Contiene los archivos JavaScript.
  • index.php: El punto de entrada de la aplicación.

Recursos - resources/

El directorio resources/ contiene los archivos de recursos. A continuación se describe la configuración de archivos de recursos:

  • css/: Contiene los archivos CSS de la aplicación.
  • js/: Contiene los archivos JavaScript de la aplicación.
  • views/: Contiene los archivos de vista de la aplicación.

Rutas - routes/

El directorio routes/ contiene los archivos de rutas. En estos archivos se definen las rutas de la aplicación. A continuación se describe la configuración de rutas:

  • api.php: Archivo de rutas de la aplicación API.
  • web.php: Archivo de rutas de la aplicación web.

La ruta api.php estan desactivadas por defecto. Para activarlas, dirijase a la documentación dando click en el enlace Rutas API.

Almacenamiento - storage/

El directorio storage/ contiene los archivos de almacenamiento. Aquí se guardan los archivos generados por la aplicación. A continuación se describe la configuración de archivos de almacenamiento:

  • framework/:
    • .cache/: Contiene los archivos de cache.
    • sessions/: Contiene los archivos de sesiones.
  • logs/: Contiene los archivos de registro.
  • public/: Contiene los archivos del almacenamiento que son publicos.

Pruebas - tests/

El directorio tests/ contiene las pruebas unitarias de la aplicación. Para saber más sobre las pruebas unitarias, dirijase a la documentación dando click en el enlace Pruebas.

  • Feature/: Contiene las pruebas de la aplicación.
  • Unit/: Contiene las pruebas unitarias de la aplicación.