Composer & Packages
Prerequisites: Namespaces & autoloading
Composer is PHP's package manager and autoloader — nearly every
real PHP project has a composer.json declaring its dependencies.
{
"require": {
"guzzlehttp/guzzle": "^7.0"
},
"autoload": {
"psr-4": { "App\\": "src/" }
}
}
composer install # installs dependencies into vendor/
composer require monolog/monolog
require 'vendor/autoload.php'; // one line enables autoloading for everything
The "psr-4": { "App\\": "src/" } mapping is what makes
App\Models\User resolve to src/Models/User.php automatically —
the namespace and folder structure must mirror each other.