Sulu\Bundle\MediaBundle\Entity\FileVersion::__clone PHP Méthode

__clone() public méthode

don't clone id to create a new entities.
public __clone ( )
    public function __clone()
    {
        if ($this->id) {
            $this->id = null;
            /** @var FileVersionMeta[] $newMetaList */
            $newMetaList = [];
            $defaultMetaLocale = $this->getDefaultMeta()->getLocale();
            /** @var FileVersionContentLanguage[] $newContentLanguageList */
            $newContentLanguageList = [];
            /** @var FileVersionPublishLanguage[] $newPublishLanguageList */
            $newPublishLanguageList = [];
            /** @var FormatOptions[] $newFormatOptionsArray */
            $newFormatOptionsArray = [];
            foreach ($this->meta as $meta) {
                /** @var FileVersionMeta $meta */
                $newMetaList[] = clone $meta;
            }
            $this->meta->clear();
            foreach ($newMetaList as $newMeta) {
                $newMeta->setFileVersion($this);
                $this->addMeta($newMeta);
                if ($newMeta->getLocale() === $defaultMetaLocale) {
                    $this->setDefaultMeta($newMeta);
                }
            }
            foreach ($this->contentLanguages as $contentLanguage) {
                /** @var FileVersionContentLanguage $contentLanguage */
                $newContentLanguageList[] = clone $contentLanguage;
            }
            $this->contentLanguages->clear();
            foreach ($newContentLanguageList as $newContentLanguage) {
                $newContentLanguage->setFileVersion($this);
                $this->addContentLanguage($newContentLanguage);
            }
            foreach ($this->publishLanguages as $publishLanguage) {
                /** @var FileVersionPublishLanguage $publishLanguage */
                $newPublishLanguageList[] = clone $publishLanguage;
            }
            $this->publishLanguages->clear();
            foreach ($newPublishLanguageList as $newPublishLanguage) {
                $newPublishLanguage->setFileVersion($this);
                $this->addPublishLanguage($newPublishLanguage);
            }
            foreach ($this->formatOptions as $formatOptions) {
                /** @var FormatOptions $formatOptions */
                $newFormatOptionsArray[] = clone $formatOptions;
            }
            $this->formatOptions->clear();
            foreach ($newFormatOptionsArray as $newFormatOptions) {
                /** @var FormatOptions $newFormatOptions */
                $newFormatOptions->setFileVersion($this);
                $this->addFormatOptions($newFormatOptions);
            }
        }
    }