PHP composer - PSR-4 Autoloader [2]
V minulé lekci jsem provedli inicializaci composeru do souboru composer.json. Nyní si ukážeme jak composerem nastavit PSR-4 autoloader (Autoloading).
Mějme v PHP aplikaci třeba tuto strukturu:
Adresář app a v něm soubory Home.php a Contact.php, které používají namespace App\;
Bez autoloaderu tříd, bychom museli provést require:
require __DIR__ . "/app/Home.php";
require __DIR__ . "/app/Contact.php";
PSR-4 autoloader
Když však chceme používat autoloader dle specifikace PSR-4, tak nám stačí upravit composer.json:
"autoload": {
"psr-4": {
"App\\": "app"
}
}
Následně spustíme
composer dump-autoload -o
Tím se vytvoří soubory pro autoloading a v naší aplikaci pak postačí:
require_once('vendor/autoload.php');
chci instalovat něco přes composer a mám chybu:
composer create-project -s dev contributte/apitte-skeleton
-----------
Could not find package contributte/apitte-skeleton with stability dev in a version installable using your PHP
version, PHP extensions and Composer version.
Můžu tu chybu, že mám php8.0 a potřebuji php8.1 nějak ignorovat a přesto provést instalaci?