У нас есть монорепо, которое включает в себя наш старый монолит, а также наши новые модули. (Нам не нужны отдельные репозитории ... пока)
src/Monolith/...
src/OrderModule/...
src/PaymentModule/...
Мы, очевидно, не хотим, чтобы наши новые модули были связаны с монолитом. Мы также не хотим определенных модулей в зависимости от других модулей. Например: OrderModule
может зависеть от PaymentModule
, но не наоборот.
Существует ли правило phpcs или linter для предотвращения "неправильной" сплоченности? Что-то, что ограничивает импорт будет работать. ESLint
JavaScript имеет no-restricted-imports
, no-restricted-modules
и nx-enforce-module-boundaries
, которые будут применять пользовательские правила границ. Существует ли PHP эквивалент?
Бонус: Мы используем DDD гексагональную архитектуру, поэтому мы могли бы даже использовать эти правила для принудительного разделения между уровнями приложения, домена и инфраструктуры ! ?