
80
сущностей, но их принято описывать отдельно, так как, во первых, они выходят
короче, а во вторых, они не динамичные и заранее известны, в таком случае, нет
никакого смысла использовать методы где необходимо указывать названия поле,
а проще описать семантический метод.
Описание интерфейсов для объектов в PHP не является обязательным, они
создаются на усмотрение разработчика. В Drupal считается best-practice
32
добавление интерфейсов для своих объектов, в особенности для таких
комплексных как сущность. В связи с этим у всех объектов сущностей
описанных в модулях присутствуют интерфейсы, которые они расширяют.
Данные интерфейсы описывают методы, которые были добавлены сущности и
содержат в себе краткое описание, полное описание при необходимости, список
всех аргументов метода, если такие имеются, и их типы и описание для них,
возвращаемые значения, их типы и описание. В приложении №9 приведен
пример интерфейса для сущности “Проект”, где описаны все методы данной
сущности. Данные интерфейсы также наследуют стандартные интерфейсы от
ядра, таким образом, формируется полная картина происходящего и что за что
отвечает. Их связи также продемонстрированы на рисунке 21.
Каждая сущность, обычно, имеет определенные поля в которых хранятся
значения. Базовые поля объявляются при помощи метода baseFieldDefinition()
объекта сущности, а все остальные поля также являются сущностями, но уже
конфигурационными. Так, каждое поле имеет свои конфигурационные YAML
файлы содержащие информацию о поле-сущности и на основе которого строятся
все данные, отображение и т.д. Данные конфигурационные-сущности для полей
также подключаются к сущности и используются ею для хранения данных.
Есть два способа добавления дополнительных полей для сущности.
Первый способ заключается в создании конфигурационной-сущностей для полей
при помощи программного кода в определенные моменты, так и при помощи
создания YAML файла с необходимой структурой, названием и описанием,
которые автоматически будут преобразованы в поля сущности. Так как
конфигурационные сущности, независимо от того, как были добавлены на сайт,
через программный код или же описанные заранее конфигурационные-файлы,
32
Лучшая практика.