Есть ли PHP линтер, который может ограничивать импорт классов на основе пользовательских правил границ? - PullRequest
0 голосов
/ 09 января 2020

У нас есть монорепо, которое включает в себя наш старый монолит, а также наши новые модули. (Нам не нужны отдельные репозитории ... пока)

src/Monolith/...
src/OrderModule/...
src/PaymentModule/...

Мы, очевидно, не хотим, чтобы наши новые модули были связаны с монолитом. Мы также не хотим определенных модулей в зависимости от других модулей. Например: OrderModule может зависеть от PaymentModule, но не наоборот.

Существует ли правило phpcs или linter для предотвращения "неправильной" сплоченности? Что-то, что ограничивает импорт будет работать. ESLint

JavaScript имеет no-restricted-imports, no-restricted-modules и nx-enforce-module-boundaries, которые будут применять пользовательские правила границ. Существует ли PHP эквивалент?

Бонус: Мы используем DDD гексагональную архитектуру, поэтому мы могли бы даже использовать эти правила для принудительного разделения между уровнями приложения, домена и инфраструктуры ! ?

...