PHP Caricamento automatico con Composer


Esempio

Mentre compositore fornisce un sistema per gestire le dipendenze per i progetti PHP (ad esempio da Packagist ), può anche servire come caricatore automatico, specificando dove cercare spazi dei nomi specifici o includere file di funzioni generiche.

Inizia con il file composer.json :

{
    // ...
    "autoload": {
        "psr-4": {
            "MyVendorName\\MyProject": "src/"
        },
        "files": [
            "src/functions.php"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "MyVendorName\\MyProject\\Tests": "tests/"
        }
    }
}

Questo codice di configurazione assicura che tutte le classi nello spazio dei nomi MyVendorName\MyProject siano mappate alla directory src e tutte le classi in MyVendorName\MyProject\Tests nella directory dei tests (relativa alla directory principale). Inoltre includerà automaticamente il file functions.php .

Dopo aver inserito questo nel tuo file composer.json , esegui l' composer update in un terminale per fare in modo che il compositore aggiorni le dipendenze, il file di blocco e generi il file autoload.php . Quando si esegue la distribuzione in un ambiente di produzione si utilizza l' composer install --no-dev . Il file autoload.php può essere trovato nella directory del vendor che dovrebbe essere generata nella directory in cui risiede composer.json .

È necessario require questo file all'inizio di un punto di installazione nel ciclo di vita dell'applicazione utilizzando una linea simile a quella riportata di seguito.

require_once __DIR__ . '/vendor/autoload.php';

Una volta incluso, il file autoload.php si occupa di caricare tutte le dipendenze fornite nel file composer.json .

Alcuni esempi del percorso di classe per la mappatura delle directory:

  • MyVendorName\MyProject\Shapes\Squaresrc/Shapes/Square.php .
  • MyVendorName\MyProject\Tests\Shapes\Squaretests/Shapes/Square.php .