PHP carga automática de clases mediante PSR 4

Vamos a olvidarnos de los require_once, para esto vamos a usar composer y la carga automática mediante PSR 4

Rodríguez Patiño, Eduardo
7,304 lecturas
Rodríguez Patiño, Eduardo
Hemos migrado hace poco nuestras publicaciones del blog antiguo. Si crees que esta se encuentra incompleta o sin coherencia deja un comentario para restaurarla manualmente.

Normalmente cuando trabajamos con PHP debemos hacer uso de los archivos y los llamamos mediante require_once. La finalidad de este video es olvidarnos de esto y comenzar a trabajar con los PSR 4 mediante composer.

Configurando nuestro archivo composer.json

Miren este composer.json de prueba

{
    "name": "hitog/36-psr",
    "authors": [
        {
            "name": "Eduardo",
            "email": "hitogoroshi@outlook.com"
        }
    ],
    "autoload": {
        "psr-4": {
            "Libs\\": "libs/",
            "Anexsoft\\": "anexsoft/"
        }
    },
    "require": {}
}

Como se darán cuenta, existe un KEY llamado "Autoload" y el cual tiene otro nodo llamado "psr-4". En este se comienza a registrar todos los namespace que queremos que nuestro proyecto cargue automáticamente.

"autoload": {
    "psr-4": {
        "Libs\\": "libs/",
        "Anexsoft\\": "anexsoft/"
    }
},

En este caso hemos cargado los namespaces Libs y Anexsoft, por lo tanto cada vez que hagamos la instancia de una clase que pertenezca a esos namespace serán cargados omitiendo el require_once.

 

¿Cómo registrar los namespace?

"autoload": {
    "psr-4": {
        "Libs\\": "libs/",
        "Anexsoft\\": "anexsoft/"
    }
},

Analizando nuevamente este archivo, en mi caso "Libs\\:" hace referencia a la namespace y su valor es la ruta donde se encuentra el namespace. Lo mismo sucede para el namespace Anexsoft.

Luego de esto tendremos que abrir la consola y ejecutar el siguiente comando

composer dump-autoload

Con esto ya tenemos nuestro namespace disponible para nuestro proyecto. Adjunto un video para reforzar el tema.

¿Te gustó nuestra publicación?
Suscríbete a nuestro boletín