eZ\Publish\Core\REST\Client\ContentTypeService::createContentType PHP Метод

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

The content type is created in the state STATUS_DRAFT.
public createContentType ( eZ\Publish\API\Repository\Values\ContentType\ContentTypeCreateStruct $contentTypeCreateStruct, array $contentTypeGroups ) : eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft
$contentTypeCreateStruct eZ\Publish\API\Repository\Values\ContentType\ContentTypeCreateStruct
$contentTypeGroups array Required array of {@link ContentTypeGroup} to link type with (must contain one)
Результат eZ\Publish\API\Repository\Values\ContentType\ContentTypeDraft
    public function createContentType(APIContentTypeCreateStruct $contentTypeCreateStruct, array $contentTypeGroups)
    {
        $inputMessage = $this->outputVisitor->visit($contentTypeCreateStruct);
        $inputMessage->headers['Accept'] = $this->outputVisitor->getMediaType('ContentType');
        if (empty($contentTypeGroups)) {
            throw new InvalidArgumentException("Argument '\$contentTypeGroups' is invalid: Argument must contain at least one ContentTypeGroup");
        }
        /** @var $firstGroup \eZ\Publish\API\Repository\Values\ContentType\ContentTypeGroup */
        /* @var $contentTypeGroups \eZ\Publish\API\Repository\Values\ContentType\ContentTypeGroup[] */
        $firstGroup = array_pop($contentTypeGroups);
        $response = $this->client->request('POST', $this->requestParser->generate('grouptypes', $this->requestParser->parse('typegroup', $firstGroup->id)), $inputMessage);
        try {
            $contentType = $this->inputDispatcher->parse($response);
        } catch (ForbiddenException $e) {
            throw new InvalidArgumentException($e->getMessage(), $e->getCode());
        }
        foreach ($contentTypeGroups as $contentTypeGroup) {
            $this->assignContentTypeGroup($contentType, $contentTypeGroup);
        }
        return $this->completeContentType($contentType);
    }