Помогите создать сущность для Drupal8

Аватар пользователя Alex554 Alex554 8 мая в 12:37

Помогите создать сущность для Drupal8, можно за разумное вознаграждение.
Есть таблица: periods
id
uid -ид пользователя
name -text
time_from -date
time_to -date
view -boolean
Нужно создать сущность, что бы можно было записывать в таблицу и изменять данные, в том числе доступную для использования в Views и подключенную к users, в том числе что бы отображался профиль пользователя.
Я пробовал создать сущность через консоль, но проблема в том, что там при добавлении каждого поля создается отдельная таблица, это мне крайне неудобно.
Пожалуйста, подскажите, даже согласен за разумное вознаграждение, как создать код, лучше конечно кто может просто создать модуль.
Заранее благодарен.

Комментарии

Аватар пользователя ivnish ivnish 8 мая в 12:40

Alex554 wrote: при добавлении каждого поля создается отдельная таблица

Именно так и работает ядро Drupal

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

Аватар пользователя Alex554 Alex554 8 мая в 12:45

ivnish wrote:
Alex554 wrote: при добавлении каждого поля создается отдельная таблица
Именно так и работает ядро Drupal
То, что вы хотите получить в итоге будет лютым колхозом и возникает вопрос, а нужен ли тогда вам Drupal для решения этой задачи

Но есть же таблица users_field_data, watchdog, там же несколько важных полей в одной табле.

Аватар пользователя ivnish ivnish 8 мая в 12:48

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

Если использовать views, то вообще неважно как хранятся данные.

Аватар пользователя Alex554 Alex554 8 мая в 12:50

ivnish wrote:
Это понятно. Но если у сущности есть поля, то данные этих полей хранятся в таблицах с названием каждого поля
Если использовать views, то вообще неважно как хранятся данные.

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

Аватар пользователя ivnish ivnish 8 мая в 12:55

Это называется "преждевременная оптимизация". Сделайте прототип (mvp) для начала, а потом уже будете оптимизировать.

И да, ещё раз подумайте нужен ли вам друпал в таком случае

Аватар пользователя Alex554 Alex554 8 мая в 12:59

ivnish wrote:
Это называется "преждевременная оптимизация". Сделайте прототип (mvp) для начала, а потом уже будете оптимизировать.
И да, ещё раз подумайте нужен ли вам друпал в таком случае

Да просто работал долго на 6ке и 7ке и вот решил пересесть на 8ку.
Друпал не может работать с большими таблицами? А что тогда лучше использовать по вашему?

Аватар пользователя ivnish ivnish 8 мая в 13:10

Друпал может многое, всё зависит от вашей квалификации. Разработка для D6/D7 и разработка для D9 - это абсолютно две разные разработки.

Пишите на том, на чем умеете или учитесь разработке для D9 с использованием ООП и компонентов symfony

Аватар пользователя Alex554 Alex554 8 мая в 13:43

voviko wrote:
попробуйте module_builder
Также, если без mvp, то всегда есть возможность дописать поля и обновить таблицу сущности.

Спасибо, сейчас попробую. Что то я про этот модуль и не слышал.

Аватар пользователя Alex554 Alex554 8 мая в 15:42

voviko wrote:
попробуйте module_builder
Также, если без mvp, то всегда есть возможность дописать поля и обновить таблицу сущности.

Спасибо. По ходу это то, что надо. После долгих пинков разобрался, да там можно создать таблу как раз как надо. Там оч много всяких финтов, сейчас буду разбираться как подключить UI и Views.

Аватар пользователя gun_dose gun_dose 8 мая в 17:00

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

Аватар пользователя Alex554 Alex554 8 мая в 22:21

gun_dose wrote:
Таблицу можно сделать какую угодно и при генерации сущности через консоль. Просто нужно в baseFieldDefinitions добавить необходимые поля. Есть только один нюанс - если поле подразумевает множественные значения, то оно в любом случае будет в отдельной таблице.

Не совсем понял где найти baseFieldDefinitions, так понял что это в консоле я должен повстречать в момент генерации entity:content, но что то я на такой вопрос так и не набрел. Если не сложно, подскажите где это найти?