¿Cuál es la diferencia entre incluir y exigir en títere


8

Tengo una clase de títeres si tengo el siguiente código:

class A {
  require B

....
} 

Me sale un error de dependencias circulares. Si tengo:

class A {
  include B

....
} 

todo funciona bien

Respuestas:


18

Son cosas muy diferentes, en realidad. Decir que los require Bmedios Bdeben venir antes A(y, por lo tanto, pueden conducir a dependencias circulares si Bresulta algo require A). Y si Bno se incluye en absoluto, dará lugar a un error de dependencias faltantes.

Por otro lado, include Bsolo dice Bque se aplicará siempre que Ase aplique: no dice nada del orden entre ellos.


¿En require Brealidad no significa que Bdebe venir antes A?
Sebastian Krysmanski

@SebastianKrysmanski Uh, sí. :)
Daniel C. Sobral

10

Esto solo se preguntó (y respondió) en la lista de correo de títeres:

La diferencia es evidente cuando el catálogo necesita ser aplicado. Con include, ha evaluado su contenido en el momento de la inclusión, pero cualquier recurso debe depender explícitamente después de la inclusión. Con un requisito, la dependencia se crea para usted, pero debe tener cuidado y asegurarse de que este sea el resultado deseado.

- Ken Barber en Requerir vs Incluir?

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.