Cita:
Iniciado por maycolalvarez @hhs en ningún momento está rompiendo la encapsulación, la clase A está declarada en el mismo ámbito de la B, por lo tanto ambas son clases publicas, lo diferente sería que A la declarara dentro de B, cosa que no recomiendo, pero igual no hay ruptura de encapsulación.
el método ejecutar de la clase A es público, por lo cual se puede acceder al ser instanciado, la encapsulación se rompe si pudiera llamar a uno privado o protegido, y hasta donde sé PHP no permite hacer esto.
Entiendo tu punto
maycolalvarez pero yo no me referia a el ocultamiento de datos ("data hiding"), si no a la encapsulación de tipos y de diseño, por eso aclaraba que hay otras formas de crear las instancias y que B se mantenga ignorante de A si quieres verlo así.