public static function setMetadata(array $metadata) { if (YII_DEBUG) { self::assertMetadataIsValid($metadata); } // Save the mixed in Person metadata. if (isset($metadata['Person'])) { $modelClassName = 'Person'; try { $globalMetadata = GlobalMetadata::getByClassName($modelClassName); } catch (NotFoundException $e) { $globalMetadata = new GlobalMetadata(); $globalMetadata->className = $modelClassName; } $globalMetadata->serializedMetadata = serialize($metadata[$modelClassName]); $saved = $globalMetadata->save(); assert('$saved'); } if (isset($metadata['User'])) { parent::setMetadata($metadata); } GeneralCache::forgetEntry(get_called_class() . 'Metadata'); }