You may view this method as an enhanced version of the new operator.
The method supports creating an object based on a class name, a configuration array or
an anonymous function.
Below are some usage examples:
php
create an object using a class name
$object = Yii::createObject('yii\db\Connection');
create an object using a configuration array
$object = Yii::createObject([
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=127.0.0.1;dbname=demo',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
]);
create an object with two constructor parameters
$object = \Yii::createObject('MyClass', [$param1, $param2]);
Using [[\yii\di\Container|dependency injection container]], this method can also identify
dependent objects, instantiate them and inject them into the newly created object.
public static createObject ( string | array | callable $type, array $params = [] ) : object | ||
$type | string | array | callable | the object type. This can be specified in one of the following forms: - a string: representing the class name of the object to be created - a configuration array: the array must contain a `class` element which is treated as the object class, and the rest of the name-value pairs will be used to initialize the corresponding object properties - a PHP callable: either an anonymous function or an array representing a class method (`[$class or $object, $method]`). The callable should return a new instance of the object being created. |
$params | array | the constructor parameters |
return | object | the created object |