[[oktatas:web:composer|< Composer]]
====== Composer automatikus betöltés ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2021
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|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:
===== 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ások =====
* https://getcomposer.org/doc/01-basic-usage.md#autoloading (2021)
* 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)