--TEST-- Lazy objects: Lazy service initialization in dependency injection container --FILE-- newLazyGhost(function ($obj) { $obj->__construct(); }); 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"