Рейтинг:1

Как управлять именами конфигураций?

флаг bn

При создании объекта конфигурации мы получаем файл example_entity.schema.yml:

example_module.example_entity.*:
  тип: config_entity
  label: 'Пример конфигурации'
  сопоставление:
    я бы:
      тип: строка
      метка: "ID"
    этикетка:
      тип: этикетка
      метка: 'Ярлык'
    UUID:
      тип: строка

Создание сущностей этого типа приведет к именам конфигураций, где звездочка заменена на свойство "id" сущности:

example_module.example_entity.name_1
example_module.example_entity.name_2
...

Но как контролировать, какое свойство используется и как добавить поддержку дополнительных свойств? Например, в ядре core.entity_form_display.*.*.*, что сопоставляет тип сущности с первым подстановочным знаком, набор сущностей со вторым и режим отображения с третьим?

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

Остальная часть имени конфигурации по определению является идентификатором:

core/lib/Drupal/Core/Config/Entity/ConfigEntityStorage.php

 * Имена объектов конфигурации объектов конфигурации состоят из двух
 * части, разделенные точкой:
 * - config_prefix: строка, обозначающая владельца (модуль/расширение)
 * объект конфигурации, за которым следуют произвольные другие идентификаторы пространства имен
 * которые объявлены владельцем расширения; например, 'node.type'.
 * config_prefix НЕ содержит точку в конце. Он определяется сущностью
 * аннотация типа.
 * - ID: строка, обозначающая идентификатор объекта в пространстве имен типа объекта; например.,
 *   'статья'. Идентификаторы объектов могут содержать точки/точки. Вся оставшаяся строка
 * после префикса config_prefix в имени конфигурации формируется идентификатор объекта. Дополнительные или
 * Пользовательские суффиксы невозможны.

Однако класс сущности конфигурации может переопределить я бы() с вычисленным идентификатором соединения. Как в примере, который вы упомянули:

core/lib/Drupal/Core/Entity/EntityDisplayBase.php

  идентификатор публичной функции () {
    вернуть $this->targetEntityType. '.' . $это->комплект. '.' . $это->режим;
  }

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

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