Skip to content

Class autoloading

Since Yii uses Composer to manage packages, it automatically loads classes from these packages without the need to require their file explicitly. When it installs packages, it generates a PSR-4 compatible autoloader. To use it, require_once autoloader /vendor/autoload.php in your index.php entry point file.

You can use autoloader not only for the packages installed, but for your application as well since it's also a package. To load classes of a certain namespace, add the following to composer.json:

json
{
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    }
}

Where App\\ is a root namespace and src/ is a directory where you have your classes. You can add more source roots if needed. When done, execute composer dump-autoload or simply composer du and classes from the corresponding namespaces will start loading automatically.

If you need development environment specific autoloading that isn't used when executing Composer with --no-dev flag, add it to autoload-dev section instead of autoload.

References