/** * The main method that creates new instances in a separate context. * * @param \AppserverIo\Psr\Application\ApplicationInterface $application The application instance to register the class loader with * @param \AppserverIo\Appserver\Core\Api\Node\ManagerNodeInterface $managerConfiguration The manager configuration * * @return void */ public static function visit(ApplicationInterface $application, ManagerNodeInterface $managerConfiguration) { // create the storage for the reflection classes and the application specific aliases $reflectionClasses = new GenericStackable(); $namingDirectoryAliases = new GenericStackable(); // create and initialize the DI provider instance $provider = new Provider(); $provider->injectApplication($application); $provider->injectReflectionClasses($reflectionClasses); $provider->injectNamingDirectoryAliases($namingDirectoryAliases); // attach the instance $application->addManager($provider, $managerConfiguration); }