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

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

Create a Content Type Group object.
public createContentTypeGroup ( eZ\Publish\API\Repository\Values\ContentType\ContentTypeGroupCreateStruct $contentTypeGroupCreateStruct ) : eZ\Publish\API\Repository\Values\ContentType\ContentTypeGroup
$contentTypeGroupCreateStruct eZ\Publish\API\Repository\Values\ContentType\ContentTypeGroupCreateStruct
Результат eZ\Publish\API\Repository\Values\ContentType\ContentTypeGroup
    public function createContentTypeGroup(ContentTypeGroupCreateStruct $contentTypeGroupCreateStruct)
    {
        if ($this->repository->hasAccess('class', 'create') !== true) {
            throw new UnauthorizedException('ContentType', 'create');
        }
        try {
            $this->loadContentTypeGroupByIdentifier($contentTypeGroupCreateStruct->identifier);
            throw new InvalidArgumentException('$contentTypeGroupCreateStruct', "A group with the identifier '{$contentTypeGroupCreateStruct->identifier}' already exists");
        } catch (APINotFoundException $e) {
            // Do nothing
        }
        if ($contentTypeGroupCreateStruct->creationDate === null) {
            $timestamp = time();
        } else {
            $timestamp = $contentTypeGroupCreateStruct->creationDate->getTimestamp();
        }
        if ($contentTypeGroupCreateStruct->creatorId === null) {
            $userId = $this->repository->getCurrentUserReference()->getUserId();
        } else {
            $userId = $contentTypeGroupCreateStruct->creatorId;
        }
        $spiGroupCreateStruct = new SPIContentTypeGroupCreateStruct(array('identifier' => $contentTypeGroupCreateStruct->identifier, 'created' => $timestamp, 'modified' => $timestamp, 'creatorId' => $userId, 'modifierId' => $userId));
        $this->repository->beginTransaction();
        try {
            $spiContentTypeGroup = $this->contentTypeHandler->createGroup($spiGroupCreateStruct);
            $this->repository->commit();
        } catch (Exception $e) {
            $this->repository->rollback();
            throw $e;
        }
        return $this->contentTypeDomainMapper->buildContentTypeGroupDomainObject($spiContentTypeGroup);
    }