framework/di/ServiceLocator.php
public function setComponents($components)
    {
        foreach ($components as $id => $component) {
            $this->set($id, $component);
        }
    }
public function setComponents($components)
    {
        foreach ($components as $id => $component) {
            $this->set($id, $component);
        }
    }
Registers a set of component definitions in this locator.

This is the bulk version of [[set()]]. The parameter should be an array
whose keys are component IDs and values the corresponding component definitions.

For more details on how to specify component IDs and definitions, please refer to [[set()]].

If a component definition with the same ID already exists, it will be overwritten.

The following is an example for registering two component definitions:

```php
[
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'sqlite:path/to/file.db',
],
'cache' => [
'class' => 'yii\caching\DbCache',
'db' => 'db',
],
]
```

@param array $components component definitions or instances