public function objectCompositeTag($oldFields = [])
    {
        /** @var \yii\db\ActiveRecord|TagDependencyTrait $this */
        $cacheFields = $this->cacheCompositeTagFields();

        if(empty($cacheFields)) {
            return [];
        }

        $cacheFields = (is_array($cacheFields) && !empty($cacheFields) && is_array($cacheFields[0])) ? $cacheFields : [$cacheFields];
        $tags = [];

        foreach ($cacheFields as $tagFields) {
            $tag = [];
            $changed = false;

            foreach ($tagFields as $tagField) {
                $tag[$tagField] = $this->$tagField;
                $changed |= isset($oldFields[$tagField]);
            }

            $tags[] = NamingHelper::getCompositeTag($this->className(), $tag);

            if ($changed) {
                $tag = [];
                foreach ($tagFields as $tagField) {
                    $tag[$tagField] = isset($oldFields[$tagField]) ? $oldFields[$tagField] : $this->$tagField;
                }
                $tags[] = NamingHelper::getCompositeTag($this->className(), $tag);
            }
        }

        return $tags;
    }