<small>Предыдущие статьи:

- ➡️ [Раздел 01. SOLT-H](/docs/01-introduction)
- ➡️ [Раздел 02. Быстрый старт](/docs/03-quick-start)
- ➡️ [Раздел 03. Философия](/docs/04-philosophy)
</small>
# SLOT-H: Философия экосистемы

Соглашение важнее правил

Этот проект построен вокруг идеи: код должен быть понятным, предсказуемым и минималистичным.

Код написан так, чтобы говорить сам за себя. Любой файл в этом проекте должен быть понятен с первого взгляда.

---

## Основные принципы

### 1. Соглашение важнее конфигурации

Система ориентирована на единообразие структуры, а не на гибкую настройку каждого компонента.

Новый модуль создаётся по известному шаблону: контроллеры, модели, представления - всё лежит в предсказуемых местах. Разработчику не нужно думать, как подключить модуль. Достаточно следовать структуре.

Система предлагает единый способ решения задач и придерживается его.

### 2. Минимализм в коде

Каждый класс решает одну задачу.

- `DbTables` содержат только описание таблицы
- `Models` содержат только объявление свойств
- `Controllers` содержат только логику запроса
- `Helpers` содержат только утилиты

Вся остальная логика вынесена в базовые классы. Дублирование кода отсутствует.

### 3. Предсказуемость важнее гибкости

Система построена так, чтобы любой разработчик, открыв проект в первый раз, понимал, где что искать и как это работает.

Знание одного модуля даёт понимание всех модулей. Потому что они построены по единому принципу.

### 4. Минимум внешних зависимостей

Система использует только то, что действительно необходимо. Каждая внешняя библиотека - это потенциальный риск: прекращение поддержки, уязвимости, несовместимость с новыми версиями PHP.

Система ориентирована на собственные решения там, где это разумно.

### 5. Код - это документация

Отдельная документация не пишется. Вместо этого код пишется так, чтобы быть самодокументируемым. Названия классов, методов, переменных говорят сами за себя.

Аннотации в коде существуют не для IDE. Они для людей, которые будут читать этот код через год.

### 6. Простота вместо сложности

Сложность в коде должна быть оправдана сложностью задачи. Система ориентирована на простые решения, которые работают.

Если решение можно сделать проще - система предлагает более простой путь.

### 7. Мультипроектность встроена в ядро

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

Каждая таблица содержит поле `project_id`. Каждый конфиг хранится в отдельном файле. Каждый проект работает как изолированная среда.

---

## Итог

Система построена на простых и понятных принципах:

- Соглашение важнее правил
- Понимание важнее сложности
- Простота важнее гибкости


## Что дальше?

- ➡️ [Раздел 05. Принципы работы](/docs/05-principles)
- ➡️ [Раздел 06. Архитектура](/docs/06-architecture)
- ➡️ [Раздел 07. Автолоадер](/docs/07-autoloader)
