eZ\Publish\Core\Repository\ContentTypeService::createContentTypeDraft PHP Метод

createContentTypeDraft() публичный Метод

This is a complete copy of the content type which has the state STATUS_DRAFT.
public createContentTypeDraft ( eZ\Publish\API\Repository\Values\ContentType\ContentType $contentType ) : eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft
$contentType eZ\Publish\API\Repository\Values\ContentType\ContentType
Результат eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft
    public function createContentTypeDraft(APIContentType $contentType)
    {
        if ($this->repository->hasAccess('class', 'create') !== true) {
            throw new UnauthorizedException('ContentType', 'create');
        }
        try {
            $this->contentTypeHandler->load($contentType->id, SPIContentType::STATUS_DRAFT);
            throw new BadStateException('$contentType', 'Draft of the ContentType already exists');
        } catch (APINotFoundException $e) {
            $this->repository->beginTransaction();
            try {
                $spiContentType = $this->contentTypeHandler->createDraft($this->repository->getCurrentUserReference()->getUserId(), $contentType->id);
                $this->repository->commit();
            } catch (Exception $e) {
                $this->repository->rollback();
                throw $e;
            }
        }
        return $this->contentTypeDomainMapper->buildContentTypeDraftDomainObject($spiContentType, array_map(function ($id) {
            return $this->contentTypeHandler->loadGroup($id);
        }, $spiContentType->groupIds));
    }