If you are coming over from Yii 1.x to Yii 2, and already read this guide, you may note that namespaces are very important in Yii 2 to identify classes. But do you know the list of seeded path aliases that come shipped with a basic or advanced app? Here is my attempt to list them.
Path Aliases List ¶
Yii2 Basic App ¶
@app
: Your application root directory@vendor
: Your vendor directory on your root app install directory@runtime
: Your application files runtime/cache storage folder@web
: Your application base url path@webroot
: Your application web root@tests
: Your console tests directory
Yii2 Advanced App ¶
@app
: Your application root directory (either frontend or backend or console depending on where you access it from)@vendor
: Your vendor directory on your root app install directory@runtime
: Your application files runtime/cache storage folder@web
: Your application base url path@webroot
: Your application web root@tests
: Your console tests directory@common
: Alias for your common root folder on your root app install directory@frontend
: Alias for your frontend root folder on your root app install directory@backend
: Alias for your backend root folder on your root app install directory@console
: Alias for your console root folder on your root app install directory
Nice summary, but
@app is not "application root directory" but current application's (frontend/backend/console) root directory in advanced template, this makes all subsequent "under @app" remarks incorrect. Was it the cause of these thumb-downs?
@webroot doesn't work in console
Using @webroot in the advanced app in a console command gives an 'invalid path alias: @webroot' error
@frontend not accesible from backend
@frontend always is marked as not found from backend.
Instead of this article see Predefined Aliases in documentation, it provides more correct and detailed information.
Yii 2 Advanced Project Template adds few extra aliases in common/config/bootstrap.php.
@webroot doesn't work in console application indeed, because application may have few tiers, for example frontend and backend, and @webroot's for these tiers are usually different, so it is unclear which one you want in console application. But you can define any extra aliases e.g. in console/config/bootstrap.php.
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.