Что такое entity, config entity, content entity в Drupal?

Главные вкладки

Аватар пользователя nathan158 nathan158 23 июня 2020 в 21:22

Сколько не читаю документацию не могу понять эти три термина. Частично это связано с тем что трудно коректно перевести технический английский даже с гугл переводчиком.

А на русскоязычных ресурсах пишут что entity это сущности. Но без конкретных примеров... И я не понимаю что такое сущности в Drupal... Сущность это что какой-то элемент который отображается на странице или что?
О config entity, content entity еще более запутано написано.

Обьсните пожалуйста эти три термина. Если можно с примерами. Тоесть например: к config entity относяться такие-то штуки и они находяться там-то...

P.S. У меня есть предположения что эти три термина как-то связанны с архитектурным подходом MVC и базами данныx, но так back-end и базы данных только начинаю изучать то не очень понимаю эти термины.

Лучший ответ

Аватар пользователя OldWarrior OldWarrior 23 июня 2020 в 22:35
1

nathan158 wrote: Ну вообще любой сайт состоит из двух частей:
1) Верстка
2) Данные которые подгружаються с базы данных ну или с API удаленного сервера.

Не факт, что только из двух "частей" и не только лишь любой. Как, например, такой вариант, когда шаблоны (а-ля вёрстка) хранятся в БД (бывало и такое)? А кто-то (в зависимости от профиля/опыта/развития) может обобщить и заявить что все сайты - суть MVC. Тут уж с какой стороны посмотреть.

nathan158 wrote: То получается что entity это запись з базы данных(пользователь, страница, термин таксокономии) которая может отображаться на экране?

Сущность - некий отдельный объект (запись), к которому можно обращаться для получения каких-то его свойств или для каких-то манипуляций над ним (создание, просмотр, редактирование, удаление и т.д.). Можно ещё рассматривать сущность как совокупность каких-то данных/полей, объединённых в один класс по функциональному признаку. Созданные сущности хранятся в БД. Сущности не обязательно могут иметь какие-либо режимы отображения, но обычно имеют. Пользователи могут создавать новые сущности (при условии установки соответствующих прав). Выше вам перечислили некоторые основные сущности Друпала.

Content entity - это обычно ноды (т.е. публикации Друпала).

По поводу config entity вряд ли можно сказать лучше, чем:

Configuration entities are entities just like content entities. The key difference is where the data is stored. Content entities are stored in the database. Configuration entities are stored in *.yml files, typically under <your_site_root>/sites/default/files/config_<unique_id>.

Another key difference with configuration entities is the expectation they are created by administrators, and not end users. As files, configuration entities can be added to a version control system.

Комментарии

Аватар пользователя voviko voviko 23 июня 2020 в 21:28
1

- entity - Это например пользователь, страница, термин таксономии.
к entity можно прикреплять поля, текстовые, ссылки на entity (например термин таксономии)
- config entity ну тут все просто. например пользователь имеет основные поля (логин пароль емайл). Имеет свои правила доступа, настройки доступа в админке и тд и тп
- content entity... тут наверно подразумевается то что вы заполнили.

Аватар пользователя nathan158 nathan158 23 июня 2020 в 21:54

Ну вообще любой сайт состоит из двух частей:
1) Верстка
2) Данные которые подгружаються с базы данных ну или с API удаленного сервера.

То получается что entity это запись з базы данных(пользователь, страница, термин таксокономии) которая может отображаться на экране?

Аватар пользователя VasyOK VasyOK 23 июня 2020 в 22:14

Натан, если вам интересно, я конечно могу вам накидать друпальского фольклора с фразами "Раньше нода это все, сейчас сущность это все", но вот извлечете вы от этого практический смысл - врядли.

Поэтому хотите делать сайты на Друпале - делайте. Ссылка на документацию вверху .И уверяю технических вопросов накопиться гораздо больше чем философских.

Аватар пользователя nathan158 nathan158 23 июня 2020 в 22:21

Я понимаю что практика важнее теории. И поэтому делаю основной упор как раз на том, чтобы делать сайты. Но на собеседованиях спрашивают что такое entity и какая разница между content entity и сonfig entity.

Аватар пользователя VasyOK VasyOK 23 июня 2020 в 22:31

А какие сайты вы делали на собеседованиях не спрашивают?
Или вы сами хотите проводить собеседования?

Аватар пользователя nathan158 nathan158 23 июня 2020 в 22:44

конечно спрашивают) но обычно

какие сайты вы делали

спрашивают на этапе отклика на вакансию) и часто просят сбросить ссылки на примеры работ)

Аватар пользователя OldWarrior OldWarrior 23 июня 2020 в 22:41
1

Да у автора и сейчас (и изначально) технических вопросов выше крыши. Даже удивительно, что он таки решил подтянуть философию теорию

Аватар пользователя OldWarrior OldWarrior 23 июня 2020 в 22:35
1

nathan158 wrote: Ну вообще любой сайт состоит из двух частей:
1) Верстка
2) Данные которые подгружаються с базы данных ну или с API удаленного сервера.

Не факт, что только из двух "частей" и не только лишь любой. Как, например, такой вариант, когда шаблоны (а-ля вёрстка) хранятся в БД (бывало и такое)? А кто-то (в зависимости от профиля/опыта/развития) может обобщить и заявить что все сайты - суть MVC. Тут уж с какой стороны посмотреть.

nathan158 wrote: То получается что entity это запись з базы данных(пользователь, страница, термин таксокономии) которая может отображаться на экране?

Сущность - некий отдельный объект (запись), к которому можно обращаться для получения каких-то его свойств или для каких-то манипуляций над ним (создание, просмотр, редактирование, удаление и т.д.). Можно ещё рассматривать сущность как совокупность каких-то данных/полей, объединённых в один класс по функциональному признаку. Созданные сущности хранятся в БД. Сущности не обязательно могут иметь какие-либо режимы отображения, но обычно имеют. Пользователи могут создавать новые сущности (при условии установки соответствующих прав). Выше вам перечислили некоторые основные сущности Друпала.

Content entity - это обычно ноды (т.е. публикации Друпала).

По поводу config entity вряд ли можно сказать лучше, чем:

Configuration entities are entities just like content entities. The key difference is where the data is stored. Content entities are stored in the database. Configuration entities are stored in *.yml files, typically under <your_site_root>/sites/default/files/config_<unique_id>.

Another key difference with configuration entities is the expectation they are created by administrators, and not end users. As files, configuration entities can be added to a version control system.

Аватар пользователя gun_dose gun_dose 24 июня 2020 в 7:47

Одно уточнение: config entity не хранятся в файлах yml. Они так же, как и контент, хранятся в базе данных. Но в отличие от контента, они там хранятся в сериализованном виде, поэтому через entity query или load by properties их из базы не вытащить.

Аватар пользователя wombatbuddy wombatbuddy 26 июня в 11:37

gun_dose wrote: Но в отличие от контента, они там хранятся в сериализованном виде, поэтому через entity query или load by properties их из базы не вытащить.

1. Entity Query support for config entities.
2. Loading Configuration Entities With The Results Of Entity Query.