SLOT-H: Философия экосистемы



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

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

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




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



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



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

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

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

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



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

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

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

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



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

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

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



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

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

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



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

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

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



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

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

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



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

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




Итог



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

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


Что дальше?



- ➡️ Раздел 05. Принципы работы
- ➡️ Раздел 06. Архитектура
- ➡️ Раздел 07. Автолоадер