Visão geral da configuração (vs. outros tipos de informação)
В Drupal 8 есть несколько типов информации:
- Content
Информация, предназначенная для отображения на вашем сайте и редактирования пользователями: статья, базовая страница, изображения, файлы и т. д.
- Session
Информация о взаимодействиях отдельных пользователей с сайтом, например, их текущий выбор для фильтра представлений просмотров. Это эфемерно и персонализировано для одного пользователя.
Информация, которая может часто меняться и / или без вмешательства пользователя. Примеры: время последнего запуска Cron, необходимость перестройки прав доступа к узлу и т.д.
Информация о вашем сайте, которая не является контентом и изменяется нечасто, например, название вашего сайта, типы контента и просмотры, которые вы определили, и т. д.
Информация о вашем сайте, которая также хранится в другом месте. Кэши существуют только для ускорения поиска данных. Они никогда не хранят канонические данные.
Информация только для чтения для вашего сайта, жестко запрограммированная в файле settings.php.
Решить, как классифицировать вашу информацию
Не всегда понятно, как решить, следует ли классифицировать часть информации, которую будет хранить ваш модуль, как содержимое, состояние или конфигурацию. Вот несколько рекомендаций:
- Config vs state: se a informacao precisa deployar do dev ao servidor real provavelmente configuracao.
- Config vs conteudo: pense construtor vs editor do site; se o editor quiser edita-lo provavelmente conteudo; se apenas o construtor deve poder provavelmente configuracao - regra nao absoluta.
- Config vs conteudo: pense numeros - quantidade enorme sugere conteudo poucas sugerem configuracao.
- Config define tipos de coisas (tipos de conteudo vocabularios etc.) enquanto cada coisa do tipo parte do conteudo: node termo etc.
Простая конфигурация против объектов конфигурации
Одно из первых решений, которое вам нужно будет принять при использовании системы управления конфигурацией, - какой тип конфигурации вы собираетесь хранить.
Простая конфигурация немного проще в реализации и поэтому идеально подходит для базовых настроек конфигурации, которые приводят к сохранению логических значений, целых чисел или простых строк текста. Bom exemplo: on/off de recurso do modulo ou nome do site do modulo system. Inclui tambem parametros exigidos pelo funcionamento correto - ex.: agregacao JavaScript ligada/desligada; inexistente o modulo system nao saberia agir. Простая конфигурация может зависеть только от модуля, который ее предоставляет. Например, system.site зависит от системного модуля и больше ничего.
Объекты конфигурации хранят информационные списки вещей, которые пользователи могут создавать и удалять; Ваш код будет продолжать работать нормально, будь то 0 или 100+. Пример: стили изображения, представления и т. Д. Vem com conjunto completo de hooks CRUD disparados como qualquer entidade tornando-as candidatas ideais quando outros modulos podem precisar/reagir. Ex.: Views usa config entities permitindo hooks em runtime onde qualquer modulo fornece configuracoes (views) ao Views. Объекты конфигурации могут иметь динамические зависимости. Как и простая конфигурация, они зависят от модуля, который их предоставляет. Например, views.view.frontpage зависит от модуля Views, но поскольку в нем перечислены узлы, он также зависит от модуля Node. Если позднее оно будет обновлено, чтобы показывать только узлы Article, оно также получит зависимость от объекта конфигурации Article (node.type.article). И так далее.