Рейтинг:1

Как программно создать тип объекта из установочного файла yml?

флаг au

Я сейчас пишу модуль. В обновлении мне нужно программно создать новый тип сущности.

Я уже создал подходящий yml для установки. Нравиться Вот этот, за исключением того, что это не сущность типа узла, а сущность пользовательского типа сущности.

Ради согласованности я хотел бы использовать yml непосредственно в моем хуке updateN. В любом случае, я могу просто использовать config yml для создания этого нового типа объекта?

Рейтинг:3
флаг cn

Связанный файл

core/profiles/standard/config/install/node.type.article.yml

код языка: en
статус: правда
зависимости: { }
Название: Статья
тип: статья
description: «Используйте <em>статьи</em> для срочного контента, такого как новости, пресс-релизы или сообщения в блогах».
помощь: ''
новая_ревизия: правда
предварительный_режим: 1
display_submitted: правда

это тип контента, и вы можете создать его в коде:

используйте Symfony\Component\Yaml\Yaml;
используйте Drupal\node\Entity\NodeType;

  $values ​​= Yaml::parseFile('core/profiles/standard/config/install/node.type.article.yml');
  $bundle = NodeType::create($values);
  $пакет->сохранить();

Для пользовательского объекта вы найдете метку и имя компьютера объекта конфигурации пакета в классе объектов (Node.php в вашем примере):

* @ContentEntityType(
* идентификатор = "узел",
* bundle_label = @Translation("Тип контента"),
* bundle_entity_type = "тип_узла",

Имя машины также является первой частью имени файла yml, заменяя _ с .

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.