У меня есть класс в кукольный, если у меня есть следующий код:
class A {
require B
....
}
Я получаю ошибку циклических зависимостей. Если у меня есть:
class A {
include B
....
}
все отлично работает
На самом деле это очень разные вещи. Сказать, что require B
средства B
должны прийти раньше A
(и, следовательно, может привести к круговым зависимостям, если что-то B
окажется require A
). А если B
не включить вообще, это приведет к ошибке отсутствующих зависимостей.
С другой стороны, include B
просто говорит, B
что будет применяться всякий раз, когда A
применяется: он ничего не говорит о порядке между ними.
require B
значит, что этоB
должно произойти раньшеA
?Это просто спросили (и ответили) в списке рассылки марионеток:
- Кен Барбер в Требовать против Включить?
источник