Eu tenho uma aula de fantoches se tiver o seguinte código:
class A {
require B
....
}
Recebo erro de dependências circulares. Se eu tiver:
class A {
include B
....
}
tudo funciona bem
São coisas muito diferentes, na verdade. Dizer que os require B
meios B
devem vir antes A
(e, portanto, pode levar a dependências circulares se algo B
acontecer require A
). E se B
não estiver incluído, isso levará ao erro de dependências ausentes.
Por outro lado, include B
apenas diz B
que será aplicado sempre que A
for aplicado: não diz nada da ordem entre eles.
require B
Na verdade, isso não significa queB
deve vir antesA
?Isso foi solicitado (e respondido) na lista de discussão de bonecos:
- Ken Barber em Exigir vs Incluir?
fonte