protected function createSwiftObject(array $config)
    {
        if (isset($config['class'])) {
            $className = $config['class'];
            unset($config['class']);
        } else {
            throw new InvalidConfigException('Object configuration must be an array containing a "class" element.');
        }

        if (isset($config['constructArgs'])) {
            $args = [];
            foreach ($config['constructArgs'] as $arg) {
                if (is_array($arg) && isset($arg['class'])) {
                    $args[] = $this->createSwiftObject($arg);
                } else {
                    $args[] = $arg;
                }
            }
            unset($config['constructArgs']);
            $object = Yii::createObject($className, $args);
        } else {
            $object = Yii::createObject($className);
        }

        if (!empty($config)) {
            $reflection = new \ReflectionObject($object);
            foreach ($config as $name => $value) {
                if ($reflection->hasProperty($name) && $reflection->getProperty($name)->isPublic()) {
                    $object->$name = $value;
                } else {
                    $setter = 'set' . $name;
                    if ($reflection->hasMethod($setter) || $reflection->hasMethod('__call')) {
                        $object->$setter($value);
                    } else {
                        throw new InvalidConfigException('Setting unknown property: ' . $className . '::' . $name);
                    }
                }
            }
        }

        return $object;
    }
protected function createSwiftObject(array $config)
    {
        if (isset($config['class'])) {
            $className = $config['class'];
            unset($config['class']);
        } else {
            throw new InvalidConfigException('Object configuration must be an array containing a "class" element.');
        }

        if (isset($config['constructArgs'])) {
            $args = [];
            foreach ($config['constructArgs'] as $arg) {
                if (is_array($arg) && isset($arg['class'])) {
                    $args[] = $this->createSwiftObject($arg);
                } else {
                    $args[] = $arg;
                }
            }
            unset($config['constructArgs']);
            $object = Yii::createObject($className, $args);
        } else {
            $object = Yii::createObject($className);
        }

        if (!empty($config)) {
            $reflection = new \ReflectionObject($object);
            foreach ($config as $name => $value) {
                if ($reflection->hasProperty($name) && $reflection->getProperty($name)->isPublic()) {
                    $object->$name = $value;
                } else {
                    $setter = 'set' . $name;
                    if ($reflection->hasMethod($setter) || $reflection->hasMethod('__call')) {
                        $object->$setter($value);
                    } else {
                        throw new InvalidConfigException('Setting unknown property: ' . $className . '::' . $name);
                    }
                }
            }
        }

        return $object;
    }
protected function createSwiftObject ( array $ config ) { if ( isset ( $ config [ 'class' ] ) ) { $ className = $ config [ 'class' ] ; unset ( $ config [ 'class' ] ) ; } else { throw new InvalidConfigException ( 'Object configuration must be an array containing a "class" element.' ) ; } if ( isset ( $ config [ 'constructArgs' ] ) ) { $ args = [ ] ; foreach ( $ config [ 'constructArgs' ] as $ arg ) { if ( is_array ( $ arg ) && isset ( $ arg [ 'class' ] ) ) { $ args [ ] = $ this -> createSwiftObject ( $ arg ) ; } else { $ args [ ] = $ arg ; } } unset ( $ config [ 'constructArgs' ] ) ; $ object = Yii :: createObject ( $ className , $ args ) ; } else { $ object = Yii :: createObject ( $ className ) ; } if ( ! empty ( $ config ) ) { $ reflection = new \ ReflectionObject ( $ object ) ; foreach ( $ config as $ name => $ value ) { if ( $ reflection -> hasProperty ( $ name ) && $ reflection -> getProperty ( $ name ) -> isPublic ( ) ) { $ object -> $ name = $ value ; } else { $ setter = 'set' . $ name ; if ( $ reflection -> hasMethod ( $ setter ) || $ reflection -> hasMethod ( '__call' ) ) { $ object -> $ setter ( $ value ) ; } else { throw new InvalidConfigException ( 'Setting unknown property: ' . $ className . '::' . $ name ) ; } } } } return $ object ; }
Creates Swift library object, from given array configuration.
@param array $config object configuration
@return Object created object
@throws \yii\base\InvalidConfigException on invalid configuration.
Creates Swift library object from given array configuration .