Когда уместно создавать Entity или просто добавлять новый тип контента?

В чем преимущество создания новых типов сущностей при простом создании нового типа контента?

Кажется, немного переборщить, чтобы выполнить все пользовательское кодирование, которое требуется для создания нового объекта, когда у вас есть все функции CRUD и Views, уже встроенные в типы контента.

84 голоса | спросил revolt 14 FebruaryEurope/MoscowbTue, 14 Feb 2012 22:30:56 +0400000000pmTue, 14 Feb 2012 22:30:56 +040012 2012, 22:30:56

6 ответов


65

Это не столько о преимуществах, сколько о том, что подходит для конкретной ситуации, как вы сказали. Вы можете представлять практически все, что связано с узлом, и для 99% ситуаций (как я нашел, по крайней мере) вам не нужно будет создавать пользовательские типы сущностей.

Я всегда думаю о типе сущностей taxonomy_term как хороший пример того, почему не все должно быть типом узла /содержимого:

Термин таксономии состоит, по существу, для группировки разных объектов и, как таковой, не требует такой же функциональности, как и узел. В то время как вы может теоретически использовать тип контента для выполнения этой функции (возможно с опорным узлом поля), термин таксономии не нужно делать то же самое, как узел, так что на самом деле не сделать смысл сделать это. То же самое можно сказать и для типов объектов user и taxonomy_vocabulary.

Таким образом, термин таксономии создается как отдельный объект и запрограммирован на то, чтобы делать только то, что ему нужно, при этом все еще получая преимущества от возможности прикреплять поля и т. д.

Я думаю, что простой ответ заключается в том, что когда тип node /content не выполняет то, что вам нужно, или это просто огромное количество излишних /накладных расходов для очень мало пользы, тогда вы должен выбрать запись пользовательского объекта.

Это основано только на моем личном опыте; Мне было бы интересно услышать, что кто-то, кто непосредственно связан с разработкой Drupal, должен был сказать об этом.

ответил Clive 14 FebruaryEurope/MoscowbTue, 14 Feb 2012 23:00:32 +0400000000pmTue, 14 Feb 2012 23:00:32 +040012 2012, 23:00:32
14

Очень простое эмпирическое правило, которое я использую, заключается в том, должен ли ваш контент публично отображаться сам по себе. Если это так, то перейдите к узлу, если не выберите объект. Entityforms теперь позволяет вам создать интерфейс для заполнения ваших объектов.

Например, на веб-сайте, созданным с помощью D6, мы создаем тип рекламного контента (с его полем изображения, датой начала /окончания отображения ...), но тогда вы должны сделать его не опубликованным по умолчанию и предоставить вашим редакторам право редактировать /просматривать этот узел и надеяться, что никакие виды /поиск не покажут их во внешнем мире. Это довольно громоздко, и было бы легче иметь дело с сущностями.

ответил tostinni 15 FebruaryEurope/MoscowbWed, 15 Feb 2012 00:09:32 +0400000000amWed, 15 Feb 2012 00:09:32 +040012 2012, 00:09:32
10

Сущность представляет конкретный вариант использования .

Я считаю, что кредит для этого простого определения относится к Fago , но я должен лениться, чтобы найти ссылку.

Мы могли бы использовать Content (aka Nodes) для всех случаев использования, если мы этого хотели, но часто это не имеет смысла.

Content имеет автора и настройки для комментариев и расположения меню.

Users, представляют собой пример использования, отличный от Content, потому что для пользователя user ни одно из вышеизложенных не имеет смысла, а на другом пользователь user должен иметь электронное письмо и пароль.

Taxonomy terms выделяются, потому что они имеют встроенную функциональность, которая должна быть организована в иерархии, даже круговой.

Если ваш прецедент похож на существующий объект, перейдите к использованию этого объекта. Если ваша организация управляется существенно разными правилами, чем любые существующие, создайте новую.

Существует также Знакомство с объектами , но, к сожалению, он не отвечает на ваш вопрос.

ответил Letharion 7 AM00000010000005331 2013, 01:46:53
5

Я думаю, что это все о контексте, узел в основном используется для контента, поэтому это будут блоги, статьи, faq и т. д. В то время как пользователь для профилей, таких как персонал, клиенты и т. д. Пример того, когда вы можете создать новую enitity:

  • Форум
  • Проект (с точки зрения управления проектами)
  • Форма
  • Талон поддержки
  • Группа

Пока вы можете использовать узел для чего-то вроде билета поддержки, это может быть не лучший шаблон и значения по умолчанию ... Надеюсь, что это поможет.

ответил WestieUK 15 FebruaryEurope/MoscowbWed, 15 Feb 2012 16:25:36 +0400000000pmWed, 15 Feb 2012 16:25:36 +040012 2012, 16:25:36
0

Тип контента предназначен для контента сайта. То есть, каждый тип контента предназначен для публикации и появления на сайте. Например, статья (из коробки) предназначена для отображения на первой странице.

Теперь, допустим, вы хотите создать что-то вроде заявки на работу или квартиру. Очевидно, что вы не захотите опубликовать чье-либо приложение занятости на своем веб-сайте. Кроме того, что, если вы хотите создать список контактов клиента /ведущего? Не хотите ли вы, чтобы эта информация могла быть опубликована по ошибке на вашем веб-сайте? Лично я бы не стал.

Следовательно, модуль формы сущности, который обсуждается выше. Это позволяет создать тип объекта, который не предназначен для контента. Однако эти типы сущностей доступны для любого модуля, который поддерживает такие объекты, как правила, представления и органическую группу, чтобы назвать лишь некоторые из них.

И затем вы попадаете в Drupal Commerce, где продукты являются типами сущностей. В основном организации позволяют разработчикам расширять Drupal таким образом, который никогда не предвидел оригинальные дизайнеры Drupal.

ответил Den Solis 28 AMpSun, 28 Apr 2013 09:32:49 +040032Sunday 2013, 09:32:49
-3

Entity vs Content

Объект имеет Связки объектов , которые Поля

Контент - это тип Entity. Таким образом,

Контент имеет Пакеты контента (статья, страница), которые Поля (тело, изображение статьи)

Если вы программист, вы, конечно, выбираете путь создания собственной сущности, но для сайтостроителей это может быть не лучший путь. Снова для разработчиков сайтов существует пользовательский интерфейс для создания Entity http://drupal.org/project/eck

ответил dgoutam 19 +04002012-10-19T18:14:58+04:00312012bEurope/MoscowFri, 19 Oct 2012 18:14:58 +0400 2012, 18:14:58

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132