Qual é a diferença entre incluir e exigir no fantoche

8

Eu tenho uma aula no fantoche se eu tiver o seguinte código:

class A {
  require B

....
} 

Eu recebo erro de dependências circulares. Se eu tiver:

class A {
  include B

....
} 

tudo funciona bem

    
por talg 16.06.2011 / 16:14

2 respostas

17

Eles são coisas muito diferentes, na verdade. Dizer que require B significa A deve vir antes de B (e, portanto, pode levar a dependências circulares se algo em B resultar em require A ). E se B não estiver incluído, isso levará a erros de dependências ausentes.

Por outro lado, include B apenas diz que B será aplicado sempre que A for aplicado: nada diz sobre a ordem entre eles.

    
por 16.06.2011 / 19:16
10

Isso foi perguntado (e respondido) na lista de discussão dos fantoches:

The difference is evident when the catalog needs to be applied. With include you have evaluated its contents at the time of the include - but any resources must be depended on explicitly after the include. With a require - the dependency is created for you - but you have to be careful and ensure that this is your desired result

- Ken Barber em Exigir contra inclusão?

    
por 16.06.2011 / 16:19

Tags