eZ\Publish\Core\Repository\LanguageService::createLanguage PHP Метод

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

Creates the a new Language in the content repository.
public createLanguage ( eZ\Publish\API\Repository\Values\Content\LanguageCreateStruct $languageCreateStruct ) : eZ\Publish\API\Repository\Values\Content\Language
$languageCreateStruct eZ\Publish\API\Repository\Values\Content\LanguageCreateStruct
Результат eZ\Publish\API\Repository\Values\Content\Language
    public function createLanguage(LanguageCreateStruct $languageCreateStruct)
    {
        if (!is_string($languageCreateStruct->name) || empty($languageCreateStruct->name)) {
            throw new InvalidArgumentValue('name', $languageCreateStruct->name, 'LanguageCreateStruct');
        }
        if (!is_string($languageCreateStruct->languageCode) || empty($languageCreateStruct->languageCode)) {
            throw new InvalidArgumentValue('languageCode', $languageCreateStruct->languageCode, 'LanguageCreateStruct');
        }
        if (!is_bool($languageCreateStruct->enabled)) {
            throw new InvalidArgumentValue('enabled', $languageCreateStruct->enabled, 'LanguageCreateStruct');
        }
        if ($this->repository->hasAccess('content', 'translations') !== true) {
            throw new UnauthorizedException('content', 'translations');
        }
        try {
            if ($this->loadLanguage($languageCreateStruct->languageCode) !== null) {
                throw new InvalidArgumentException('languageCreateStruct', 'language with specified language code already exists');
            }
        } catch (APINotFoundException $e) {
            // Do nothing
        }
        $createStruct = new CreateStruct(array('languageCode' => $languageCreateStruct->languageCode, 'name' => $languageCreateStruct->name, 'isEnabled' => $languageCreateStruct->enabled));
        $this->repository->beginTransaction();
        try {
            $createdLanguage = $this->languageHandler->create($createStruct);
            $this->repository->commit();
        } catch (Exception $e) {
            $this->repository->rollback();
            throw $e;
        }
        return $this->buildDomainObject($createdLanguage);
    }