*/ private array $wired_instances; public function __construct( Container $container ) { $this->container = $container; $this->wired_instances = array(); } public function resolve( string $class_name ): object { return $this->container->get( $class_name ); } /** * @template Instance of object * * @param class-string $class_name * @param Instance|callable(): Instance $resolver */ public function wire( string $class_name, $resolver ): void { $this->wired_instances[ $class_name ] = $resolver; $this->container->set( $class_name, $resolver ); } /** * @return array */ public function get_wired_instances(): array { return $this->wired_instances; } }