From a2d1feb8489e2a4bcfdb53ccac78f581d632bdc7 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Fri, 28 Feb 2025 12:33:49 +0100
Subject: [PATCH] fixes #67

---
 bootstrap-definitions.php |  2 +-
 lib/GitlabController.php  |  2 +-
 lib/Plugin.php            | 17 ++++++++---------
 3 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/bootstrap-definitions.php b/bootstrap-definitions.php
index 40adf68..7bd308e 100644
--- a/bootstrap-definitions.php
+++ b/bootstrap-definitions.php
@@ -37,7 +37,7 @@ return [
             'handler' => $handlerStack,
         ]);
     },
-    Gitlab\Client::class   => function (ContainerInterface $container) {
+    Gitlab\Client::class => function (ContainerInterface $container) {
         $builder = new Gitlab\HttpClient\Builder(
             $container->get(ClientInterface::class),
             new RequestFactory(),
diff --git a/lib/GitlabController.php b/lib/GitlabController.php
index 61fe66a..b75c86f 100644
--- a/lib/GitlabController.php
+++ b/lib/GitlabController.php
@@ -22,7 +22,7 @@ abstract class GitlabController extends Controller
         $this->setCache(StudipCacheFactory::getCache(), 'gitlab/');
 
         $this->gitlab_project_id = Config::get()->getValue('TRAC2GITLAB_GITLAB_PROJECT_ID');
-        $this->gitlab = app(Client::class);
+        $this->gitlab = app()->get(Client::class);
     }
 
     protected function fetchAll(AbstractApi $api, string $method, array $parameters = []): array
diff --git a/lib/Plugin.php b/lib/Plugin.php
index 3506985..8f0d2b6 100644
--- a/lib/Plugin.php
+++ b/lib/Plugin.php
@@ -9,17 +9,16 @@ abstract class Plugin extends StudIPPlugin
 {
     protected function setupDiContainer()
     {
-        $builder = new DI\ContainerBuilder();
-        $builder->useAutowiring(false);
-        $builder->addDefinitions(__DIR__ . '/../bootstrap-definitions.php');
-        $container = $builder->build();
+        $container = DIContainer::getInstance();
 
-        $combinedContainer = new CombinedContainer(
-            $container,
-            DIContainer::getInstance()
-        );
+        $definitions = require __DIR__ . '/../bootstrap-definitions.php';
 
-        DIContainer::setInstance($combinedContainer);
+        foreach ($definitions as $name => $value) {
+            if ($value instanceof \Closure) {
+                $value = $value($container);
+            }
+            $container->set($name, $value);
+        }
     }
 
     public function perform($unconsumed_path)
-- 
GitLab