AppserverIo\Appserver\ServletEngine\StandardSessionManagerFactory::visit PHP Method

visit() public static method

The main method that creates new instances in a separate context.
public static visit ( AppserverIo\Psr\Application\ApplicationInterface $application, AppserverIo\Appserver\Core\Api\Node\ManagerNodeInterface $managerConfiguration ) : void
$application AppserverIo\Psr\Application\ApplicationInterface The application instance to register the class loader with
$managerConfiguration AppserverIo\Appserver\Core\Api\Node\ManagerNodeInterface The manager configuration
return void
    public static function visit(ApplicationInterface $application, ManagerNodeInterface $managerConfiguration)
    {
        // initialize the sessions and the session settings
        $sessionHandlers = new HashMap();
        $sessionSettings = new DefaultSessionSettings();
        $sessionMarshaller = new StandardSessionMarshaller();
        // add the configured session handlers
        /** @var \AppserverIo\Appserver\Core\Api\Node\SessionHandlerNode $sessionHandlerNode */
        foreach ($managerConfiguration->getSessionHandlers() as $sessionHandlerNode) {
            if ($factory = $sessionHandlerNode->getFactory()) {
                $sessionHandlers->add($sessionHandlerNode->getName(), $factory::create($sessionHandlerNode, $sessionSettings, $sessionMarshaller));
            }
        }
        // we need a garbage collector
        $garbageCollector = new StandardGarbageCollector();
        $garbageCollector->injectApplication($application);
        $garbageCollector->injectSessionSettings($sessionSettings);
        $garbageCollector->start();
        // and finally we need the session manager instance
        $sessionManager = new StandardSessionManager();
        $sessionManager->injectApplication($application);
        $sessionManager->injectSessionSettings($sessionSettings);
        $sessionManager->injectSessionHandlers($sessionHandlers);
        $sessionManager->injectGarbageCollector($garbageCollector);
        $sessionManager->injectSessionMarshaller($sessionMarshaller);
        $sessionManager->injectManagerConfiguration($managerConfiguration);
        // attach the instance
        $application->addManager($sessionManager, $managerConfiguration);
    }
StandardSessionManagerFactory