Дата: 2025-11-10
Версия: 1.0.0
Цель: Изучить архитектуру 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)
Entity - любой контент в Drupal (пользователи, статьи, комментарии, таксономия).
┌─────────────────────────────────────────────────────────┐
│ 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 файлах │ │
│ │ Экспортируются/импортируются │ │
│ └──────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
```php