< Composer

Composer automatikus betöltés

Szerző: Sallai András

Copyright © Sallai András, 2021

Licenc: CC Attribution-Share Alike 4.0 International

Web: https://szit.hu

Az automatikus betöltésről

Ha nagyon sok külső könyvtárat használunk, sok include és require utasítást kell használnunk. Ezek fenntartása egy idő után nehézkessé válik.

Az autoloader azért is hasznos, mert csak azokat modulokat tölti be, amelyeket éppen használunk, így kisebb memóriafelhasználást az eredmény.

Ezektől függetlenül a PHP is tartalmaz egy automatikus betöltő függvényt:

spl_autoload_register()

A Composer automatikus fájlbetöltő mechanizmusai.

files - fájlok betöltése

classmap - betöltés könyvtárból

PSR-0 betöltés

PSR-4 betöltés

A files

{ "autoload": { "files": ["lib/Valami.php", "lib/Masr.php"] } }

Ahol szeretnénk automatikusan betölteni:

<?php require 'vendor/autoload.php';

A classmap

A könyvtárak listáját adjunk, meg, a betöltő megkeresi az kívánt fájlokat.

{ "autoload": { "classmap": ["lib"] } }

PSR-0

A PSR-0 a PHP-FIG csoport által ajánlott szabvány az automatikus betöltéshez. A szabvány szerint névtereket használunk a betöltéshez. A következő szerkezetet kell követni:

\Vendornév\[Névtér\]*Osztálynév

Az osztályokat olyan fájlokba és könyvtárszerkezetbe kell menteni, ami követi a névtereket.

{
"autoload": {
"psr-0": {
"Shape": "src"
}
}
}

PSR-4

A PSR-4 szabványban is névterket kell használnunk, mint a PSR-0-ban. A könyvtárszerkezetnek viszont nem kell megegyeznie a névtérrel.

A composer.json fájlban a névtér
jelekre kell végződjön.

{
"autoload": {
"psr-4": {
"Shape\\": "src/Shape"
}
}
}

Forrás

https://www.php.net/manual/en/function.spl-autoload-register.php (2021)

https://code.tutsplus.com/tutorials/how-to-autoload-classes-with-composer-in-php--cms-35649 (2021)