--TEST-- Lazy objects: Lazy service initialization in dependency injection container via factory --FILE-- newLazyProxy(function ($obj) { return new EntityManager(); }); return $obj; } public function getApplicationService(): Application { return new Application($this->getEntityManagerService()); } } $container = new Container(); printf("Service can be fetched without initializing dependencies\n"); $application = $container->getApplicationService(); --EXPECTF-- Service can be fetched without initializing dependencies string(24) "Application::__construct"