Skip to content
AgileLogics
5 min read

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.