architect/_archive/2025-11-cleanup/platform-v2-cifra/archive/2025-11-10-redundant/DRUPAL_ARCHITECTURE_ANALYSIS.md

Архитектура Drupal: Глубокий анализ

Дата: 2025-11-10
Версия: 1.0.0
Цель: Изучить архитектуру Drupal, взять лучшие концепции


КРАТКИЙ ОТВЕТ

Drupal - архитектурный шедевр!

Почему Drupal уникален:
- 🏆 Entity API - всё является сущностью (Users, Nodes, Comments - единый API)
- 🔌 Plugin System - самая мощная система плагинов в PHP
- ⚙️ Configuration Management - конфигурация как код (YAML)
- 🎯 Field API - динамические поля для любой сущности
- 📊 Views - SQL конструктор без кода
- 🎣 Hooks/Events - расширяемость на всех уровнях
- 💉 Service Container - Dependency Injection (Symfony)

Что взять для ПЛАТФОРМЫ ЦИФРА:
- ✅ Entity API подход (всё - entity)
- ✅ Plugin System (расширяемость)
- ✅ Configuration as Code (YAML)
- ✅ Field API (динамические поля)
- ✅ Service Container (DI)


Часть 1: ENTITY API (центральная концепция)

Философия Drupal: "Everything is an Entity"

Entity - любой контент в Drupal (пользователи, статьи, комментарии, таксономия).

Архитектура Entity API:

┌─────────────────────────────────────────────────────────┐
                   ENTITY HIERARCHY                      
├─────────────────────────────────────────────────────────┤
                                                         
  Entity Interface (базовый интерфейс)                   
  ├── id()                                               
  ├── uuid()                                             
  ├── label()                                            
  ├── save()                                             
  └── delete()                                           
                                                         
  ┌──────────────────────────────────────────────────┐   
   Content Entity (контент с полями)                   
    - Node (статьи, страницы)                          
    - User (пользователи)                              
    - Comment (комментарии)                            
    - Media (медиа файлы)                              
    - Custom content types                             
                                                       
    Поддерживают:                                      
     Поля (Field API)                                
     Переводы (i18n)                                 
     Ревизии (версионирование)                       
     Вложения (embeddable)                           
  └──────────────────────────────────────────────────┘   
                                                         
  ┌──────────────────────────────────────────────────┐   
   Config Entity (конфигурация)                        
    - Content types (типы контента)                    
    - View modes (режимы отображения)                  
    - Vocabularies (словари таксономии)                
                                                       
    Хранятся в YAML файлах                             
    Экспортируются/импортируются                       
  └──────────────────────────────────────────────────┘   
└─────────────────────────────────────────────────────────┘

Entity определение (аннотации):

```php