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
:
{
"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
.