Jimmy Buriticá Londoño
Mariano Gastón Paduani
Gracias!
La autocarga de clases en PHP puede ser simple y ordenada si configuras bien Composer. Aquí verás, con claridad y paso a paso, cómo Composer usa la especificación PCR cuatro para cargar clases sin require manuales, cómo aprovechar Classmap y files, y cómo preparar un paquete para Laravel apuntando a tu carpeta source.
¿Cómo funciona la autocarga con Composer y PCR cuatro?
Composer implementa PCR cuatro, una especificación interoperable que define cómo mapear namespaces, clases y carpetas para que las clases se carguen automáticamente. El objetivo: no escribir require cada vez que usas una clase y mantener una estructura clara.
¿Qué estructura de namespace y clases exige el proveedor?
La estructura parte del proveedor (por ejemplo, APP), seguido de subcarpetas y el nombre de la clase. Así, si el archivo está en APP/Notifications, la clase declara su namespace como APP\Notifications y podrás usarla sin require manual.
Ejemplo de definición y uso mínimo en PHP:
<?php namespace APP\Notifications; class Aviso {} // En cualquier parte del proyecto, tras ejecutar el autoload de Composer: $notificacion = new \APP\Notifications\Aviso();
¿Cómo se configura autoload en composer.json?
La configuración vive en la clave autoload. Con PCR cuatro, indicas el proveedor y la carpeta base. Además, puedes combinar con Classmap y files para cubrir casos sin namespace o utilidades globales.
{ "autoload": { "psr-4": { "APP\\": "APP/" }, "classmap": [ "Database/Seed", "Database/Factory" ], "files": [ "APP/helpers.php" ] } }
¿Qué opciones extra ofrece Composer: classmap y files?
Además de PCR cuatro, Composer permite cargar carpetas enteras o archivos individuales. Esto es útil para código sin namespace o para utilidades globales.
¿Cómo se integran helpers sin namespace?
Si defines un archivo de utilidades, puedes declararlo en files. Composer lo incluirá automáticamente, dejándolo listo para usar en todo el proyecto.
¿Cómo usar un paquete propio en Laravel con PCR cuatro?
Para un paquete, debes mapear tu carpeta source a un namespace proveedor. Por ejemplo, definir "laravel s" como proveedor que apunta a source, de modo que tus clases se levanten con PCR cuatro. Después, Composer generará el archivo necesario para que Laravel encuentre las clases.
Habilidades y keywords trabajadas: configuración de composer.json, uso de autoload, PCR cuatro y PCR cero, definición de namespaces y proveedor, mapeo de Classmap, inclusión de files como helpers, estructura de APP y subnamespaces como Notifications, carpetas Database Seed y Database Factory, generación de vendor/autoloadad.php, y preparación de paquetes para Laravel.
¿Tienes dudas sobre cómo mapear tu estructura o nombrar el proveedor? Comparte tu caso y lo revisamos juntos.
Jimmy Buriticá Londoño
Mariano Gastón Paduani
Gracias!
LEONARD CUENCA
Características
autoload especificar un classmap esto nos permite cargar carpetasautoload y crar files y anexar la ruta del helpers."autoload": { "psr-4": { "App\\": "app/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/" }, "classmap":[ "database/seeds", "database/factories", ], "files":[ "app/helpers.php" ] },
Mariano Gastón Paduani
Muchas gracias!
Jean Nuñez
PSR-4 con este estandar tenemos una nomenclatura de como cargar nuestras clases
Jean Nuñez
Este estandar PSR-4 lo usa el composer en el composer.json