Что такое 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 их из базы не вытащить.