Creación de Estructura de Carpetas en un Proyecto PHP con Composer

Clase 3 de 14Curso de Introducción a Frameworks de PHP

Resumen

¿Cómo estructurar un proyecto similar a Laravel desde cero?

Crear una estructura de carpetas bien organizadas es crucial al desarrollar aplicaciones con frameworks como Laravel. Además de mejorar el flujo de trabajo, garantiza que el código resulte fácil de mantener y entender. A continuación, te mostramos cómo crear una estructura inicial para tu proyecto, inspirada en Laravel.

¿Qué carpetas son esenciales?

  1. Carpeta app: Es la columna vertebral del proyecto. Esta carpeta se encargará de manejar las funcionalidades principales de tu aplicación.

    • Subcarpeta HTTP: Gestiona las solicitudes y respuestas. Aquí encontrarás:
      • Los controladores que procesan las solicitudes del usuario.
      • Las clases de solicitud y respuesta.
      • Un archivo helpers con funciones que facilitarán el desarrollo.
  2. Carpeta public: Contiene el punto de acceso principal a tu aplicación mediante el archivo index.php.

  3. Carpeta vendor: Se utiliza para el sistema de autocarga de Composer, gestionado con el estándar PSR-4.

  4. Carpeta views: Lugar para las vistas de tu aplicación. Aquí vivirán las plantillas como la vista home.

¿Cómo configuramos Composer para el autoload?

La magia del autoload de Composer simplifica la carga de clases, permitiendo un flujo de trabajo más eficiente. Aquí te mostramos cómo configurar el autoload de Composer para tu proyecto.

  1. Inicializa Composer:

    composer init
    

    Acepta las configuraciones predeterminadas, como el nombre del proyecto y el autor.

  2. Configura el autoload:

    • Agrega al archivo composer.json la configuración para PSR-4:
      "autoload": {
          "psr-4": {
              "App\\": "app/"
          }
      }
      
    • Registra tu archivo helpers que todavía no existe, pero se creará posteriormente:
      "files": ["app/helpers.php"]
      
  3. Ejecución para aplicar los cambios:

    composer dump-autoload
    

¿Cómo organizamos las subcarpetas dentro de app?

  1. Crea las subcarpetas dentro de HTTP:

    • Controllers: Aquí irán los controladores responsables de las acciones del usuario.
    • Requests y Responses: Define cómo manejar las solicitudes y respuestas del sistema.
  2. Crea y organiza las vistas:

    Aloja vistas y plantillas dentro de la carpeta views para concretar cómo se mostrará la información al usuario.

  3. Carpeta pública:

    Aquí vive el archivo index.php, que servirá como el punto de entrada de la aplicación, gestionando las solicitudes iniciales.

En resumidas cuentas, esta estructura básica no solo te ayudará a organizar tus proyectos, sino que te preparará para comprender y manejar frameworks más complejos en el futuro. Explora las potencialidades de esta estructura y adéntrate al mundo del desarrollo con un enfoque claro y eficiente.