Just reading the configuration documentation and there it is indicated regarding widgets:
The configuration array should NOT have the class key.
Source
Or in our opinion:
Note that the class parameter is NOT passed because the full name is already specified.
A source
In general, the configuration in Yii2 is an array of the following form:
[ 'class' => 'ClassName', 'propertyName' => 'propertyValue', 'on eventName' => $eventHandler, 'as behaviorName' => $behaviorConfig, ]
Source
In cases of application and widget configuration, the class
property is not specified, since the class name has already been obtained ...
For the application in the incoming script:
(new yii\web\Application($config))->run();
For a widget (specifically for a Menu
widget):
use yii\widgets\Menu; echo Menu::widget([ 'activateItems' => false, 'items' => [ ['label' => 'Home', 'url' => ['site/index']], ['label' => 'Products', 'url' => ['product/index']], ['label' => 'Login', 'url' => ['site/login'], 'visible' => Yii::$app->user->isGuest], ], ]);
In other words, the class
property is reserved for internal use by Yii2: to specify the class whose instance we want to create, configure, and use for something.