Nakon ovog poglavlja
Što ćete znati napraviti
- Objasniti namespace i PSR-4 mapiranje.
- Inicijalizirati Composer projekt i koristiti autoloader.
- Razlikovati composer.json od composer.lock.
Bez sudara imena
Puno ime klase opisuje njezin dom
Namespace sprječava sudar dviju klasa istog kratkog imena i pokazuje kojem dijelu aplikacije pripadaju. use uvozi puno ime radi čitljivosti; ne učitava datoteku. Jedna projektna klasa po datoteci pojednostavljuje autoloading.
<?php
declare(strict_types=1);
namespace App\Domain\Articles;
final class Article
{
}
Ime postaje putanja
Composer pronalazi našu klasu
PSR-4 mapira prefiks namespacea na direktorij. Nakon promjene autoload konfiguracije pokrenite composer dump-autoload. Ulazna datoteka aplikacije jednom učitava vendor/autoload.php; ručni niz require poziva više nije potreban.
{
"require": {
"php": "^8.5"
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
Ponovljiva instalacija
Require, update i install nisu isto
composer require dodaje paket i rješava verzije. composer update ponovno izračunava dopuštene verzije i zapisuje composer.lock. composer install instalira točno zaključane verzije, zato ga koristimo u timu i produkciji.
Prije dodavanja paketa provjerite održavanje, licencu, sigurnosne objave i rješava li paket dovoljno velik problem. composer audit provjerava poznate ranjivosti ovisnosti.
<?php
declare(strict_types=1);
require dirname(__DIR__) . '/vendor/autoload.php';
use App\Domain\Articles\Article;
$article = new Article();
Primijenite naučeno
Vježba: PSR-4 kostur
Postavite mali App namespace i automatski učitajte jednu klasu.
- Izradite composer.json s App\ mapiranjem na src/.
- Pokrenite composer dump-autoload.
- U public/index.php učitajte autoloader i instancirajte klasu.
Za provjeru i nastavak