It is difficult to perform user dependent theming through a general configuration in 'main.php'.
This article proposes a method to do so through a Factory that dynamically generates classes to allow delayed resolution of actual user values.
This means that you can refer to values that are stored in the database through the CActiveRecord before Yii is actually loaded.
The values will be fetched from the database when actually used for the first time, which is after Yii is loaded.
Actually, you can use pretty much any method that relies on Yii with this method.
You would find having such a need in most Yii Projects. Your database needs a specific format to store date fields, while you may want to display it in different formats to the users on forms and other views.
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.