return[ \Flexi\Factory::class=> DI\factory(function() { return new \Flexi\Factory("{$GLOBALS['STUDIP_BASE_PATH']}/templates"); }), LoggerInterface::class=> DI\factory(function() { return new Logger( 'studip', [ new StreamHandler( $GLOBALS[ 'TMP_PATH'] . '/studip.log', \Studip\ENV==='development' ? Logger::DEBUG :Logger::ERROR),]); }), \Studip\Cache\Cache::class=> DI\factory(function() { return \Studip\Cache\Factory::getCache(); }), PDO::class=> DI\factory(function() { return DBManager::get(); }), Trails\Dispatcher::class=> DI\factory(function(ContainerInterface $container) { return new \StudipDispatcher( $container); }), DebugBar\DebugBar::class=> DI\factory(function(ContainerInterface $container) { $debugBar=new DebugBar\DebugBar(); $debugBar->addCollector(new PhpInfoCollector()); $debugBar->addCollector(new RequestDataCollector()); $debugBar->addCollector(new MemoryCollector()); $debugBar->addCollector(new ExceptionsCollector()); # $debugBar->addCollector(new MessagesCollector()); $debugBar->addCollector(new TimeDataCollector()); $config=iterator_to_array(Config::getInstance() ->getIterator()); ksort( $config); $debugBar->addCollector(new DebugBar\DataCollector\ConfigCollector( $config)); $pdo=$container->get(PDO::class); if( $pdo instanceof Studip\Debug\TraceableStudipPDO) { $collector=new DebugBar\DataCollector\PDO\PDOCollector( $pdo); $debugBar->addCollector( $collector); } return $debugBar; }), StudipPDO::class=> DI\factory(function() { $pdo=new StudipPDO( "mysql:host={$GLOBALS['DB_STUDIP_HOST']};dbname={$GLOBALS['DB_STUDIP_DATABASE']};charset=utf8mb4", $GLOBALS[ 'DB_STUDIP_USER'], $GLOBALS[ 'DB_STUDIP_PASSWORD']); if(Studip\Debug\DebugBar::isActivated()) { $pdo=new Studip\Debug\TraceableStudipPDO( $pdo); } return $pdo; }), PluginManager::class=> DI\factory([PluginManager::class, 'getInstance']), Studip\Session\Manager::class=> DI\factory(function() { if(Config::get() ->CACHING_ENABLE &&$GLOBALS[ 'CACHE_IS_SESSION_STORAGE']) { $session_handler=new Studip\Session\CacheSessionHandler( $GLOBALS[ 'SESSION_OPTIONS'][ 'lifetime'] ?? null); } else { $session_handler=new Studip\Session\DbSessionHandler(); } $GLOBALS[ 'SESSION_OPTIONS'][ 'path']=$GLOBALS[ 'CANONICAL_RELATIVE_PATH_STUDIP']; $GLOBALS[ 'SESSION_OPTIONS'][ 'secure']=Request::protocol()==='https'; return new Studip\Session\Manager( $session_handler, $GLOBALS[ 'SESSION_OPTIONS']); }), Studip\Authentication\Manager::class=> DI\create(), \Psr\Http\Message\RequestFactoryInterface::class=> DI\get(Psr17Factory::class), \Psr\Http\Message\ResponseFactoryInterface::class=> DI\get(Psr17Factory::class), \Psr\Http\Message\ServerRequestFactoryInterface::class=> DI\get(Psr17Factory::class), \Psr\Http\Message\StreamFactoryInterface::class=> DI\get(Psr17Factory::class), \Psr\Http\Message\UploadedFileFactoryInterface::class=> DI\get(Psr17Factory::class), \Psr\Http\Message\UriFactoryInterface::class=> DI\get(Psr17Factory::class), \Psr\Http\Message\ServerRequestInterface::class=> DI\factory([ServerRequestCreator::class, 'fromGlobals']),] |