J'ai une classe en marionnette si j'ai le code suivant:
class A {
require B
....
}
J'obtiens une erreur de dépendances circulaires. Si j'ai:
class A {
include B
....
}
tout fonctionne bien
Ce sont des choses très différentes, en fait. Dire que les require B
moyens B
doivent venir avant A
(et, par conséquent, peuvent conduire à des dépendances circulaires si quelque chose B
se révèle require A
). Et s'il B
n'est pas inclus du tout, cela entraînera une erreur de dépendances manquante.
D'un autre côté, include B
dit simplement B
sera appliqué chaque fois qu'il A
est appliqué: il ne dit rien de l'ordre entre eux.
require B
signifie- t-il pas que celaB
doit venir avantA
?Cela vient d'être demandé (et répondu) sur la liste de diffusion de marionnettes:
- Ken Barber dans Exiger vs inclure?
la source