]> git.agnieray.net Git - galette.git/commitdiff
Properly use injection
authorJohan Cwiklinski <johan@x-tnd.be>
Tue, 5 Mar 2024 14:58:11 +0000 (15:58 +0100)
committerJohan Cwiklinski <johan@x-tnd.be>
Wed, 6 Mar 2024 17:37:46 +0000 (18:37 +0100)
Missing types on some properties
Missing uses

.composer-require-checker.config.json
galette/lib/Galette/Controllers/AbstractController.php
galette/lib/Galette/Core/PluginControllerTrait.php
galette/lib/Galette/Features/Replacements.php
phpstan.neon
tests/Galette/Controllers/tests/units/PdfController.php
tests/Galette/IO/tests/units/CsvIn.php

index 3350ddec3db22ffcd7d3830ea659afcaf1ed4ee1..e98c422d0fb72a0653151cf0db737c7302105e1d 100644 (file)
@@ -93,6 +93,7 @@
     "DI\\autowire",
     "DI\\Container",
     "DI\\ContainerBuilder",
+    "DI\\Attribute\\Inject",
 
     "// Not detected, do not know why.",
     "Psr\\Http\\Server\\RequestHandlerInterface"
index 75bda451a3a1f95fb6352c07d8af87bacb1364ec..d5ff6c1ffa18ab67406ff5176559ad4f71f8ccaf 100644 (file)
 
 namespace Galette\Controllers;
 
+use Galette\Core\Db;
+use Galette\Core\History;
+use Galette\Core\I18n;
+use Galette\Core\L10n;
+use Galette\Core\Login;
+use Galette\Core\Logo;
+use Galette\Core\Plugins;
+use Galette\Core\Preferences;
+use Galette\Core\PrintLogo;
+use Galette\Entity\FieldsConfig;
+use Galette\Entity\ListsConfig;
 use Psr\Container\ContainerInterface;
+use RKA\Session;
+use Slim\Flash\Messages;
 use Slim\Psr7\Request;
 use Slim\Psr7\Response;
 use Slim\Routing\RouteContext;
 use Slim\Routing\RouteParser;
+use DI\Attribute\Inject;
+use Slim\Views\Twig;
 
 /**
  * Galette abstract controller
@@ -59,94 +74,95 @@ abstract class AbstractController
 {
     private $container;
     /**
-     * @var \Galette\Core\Db
+     * @var Db
      */
     #[Inject]
-    protected $zdb;
+    protected Db $zdb;
     /**
-     * @var \Galette\Core\Login
+     * @var Login
      */
     #[Inject]
-    protected $login;
+    protected Login $login;
     /**
-     * @var \Galette\Core\Preferences
+     * @var Preferences
      */
     #[Inject]
-    protected $preferences;
+    protected Preferences $preferences;
     /**
-     * @var \Slim\Views\Twig
+     * @var Twig
      */
-    protected $view;
+    #[Inject]
+    protected Twig $view;
     /**
-     * @var \Galette\Core\Logo
+     * @var Logo
      */
     #[Inject]
-    protected $logo;
+    protected Logo $logo;
     /**
-     * @var \Galette\Core\PrintLogo
+     * @var PrintLogo
      */
     #[Inject]
-    protected $print_logo;
+    protected PrintLogo $print_logo;
     /**
-     * @var \Galette\Core\Plugins
+     * @var Plugins
      */
     #[Inject]
-    protected $plugins;
+    protected Plugins $plugins;
     /**
-     * @var \Slim\Routing\RouteParser
+     * @var RouteParser
      */
     #[Inject]
-    protected $routeparser;
+    protected RouteParser $routeparser;
     /**
-     * @var \Galette\Core\History
+     * @var History
      */
     #[Inject]
-    protected $history;
+    protected History $history;
     /**
-     * @var \Galette\Core\I18n
+     * @var I18n
      */
     #[Inject]
-    protected $i18n;
+    protected I18n $i18n;
     /**
-     * @var \Galette\Core\L10n
+     * @var L10n
      */
     #[Inject]
-    protected $l10n;
+    protected L10n $l10n;
     /**
-     * Session
+     * @var Session
      */
     #[Inject("session")]
-    protected $session;
+    protected Session $session;
     /**
-     * @var \Slim\Flash\Messages
+     * @var Messages
      */
     #[Inject]
-    protected $flash;
+    protected Messages $flash;
     /**
-     * @var \Galette\Entity\FieldsConfig
+     * @var FieldsConfig
      */
     #[Inject]
-    protected $fields_config;
+    protected FieldsConfig $fields_config;
     /**
-     * @var \Galette\Entity\ListsConfig
+     * @var ListsConfig
      */
     #[Inject]
-    protected $lists_config;
+    protected ListsConfig $lists_config;
     /**
      * @var array
      */
     #[Inject("members_fields")]
-    protected $members_fields;
+    protected array $members_fields;
     /**
      * @var array
      */
     #[Inject("members_form_fields")]
-    protected $members_form_fields;
+    protected array $members_form_fields;
     /**
      * @var array
      */
     #[Inject("members_fields_cats")]
-    protected $members_fields_cats;
+    protected array $members_fields_cats;
 
     /**
      * Constructor
@@ -156,25 +172,6 @@ abstract class AbstractController
     public function __construct(ContainerInterface $container)
     {
         $this->container = $container;
-        //set various services we need
-        $this->zdb = $container->get('zdb');
-        $this->login = $container->get('login');
-        $this->preferences = $container->get('preferences');
-        $this->view = $container->get(\Slim\Views\Twig::class);
-        $this->logo = $container->get('logo');
-        $this->print_logo = $container->get('print_logo');
-        $this->routeparser = $container->get(RouteParser::class);
-        $this->history = $container->get('history');
-        $this->i18n = $container->get('i18n');
-        $this->l10n = $container->get('l10n');
-        $this->session = $container->get('session');
-        $this->flash = $container->get('flash');
-        $this->fields_config = $container->get('fields_config');
-        $this->lists_config = $container->get('lists_config');
-        $this->members_fields = $container->get('members_fields');
-        $this->members_form_fields = $container->get('members_form_fields');
-        $this->members_fields_cats = $container->get('members_fields_cats');
-        $this->plugins = $container->get('plugins');
     }
 
     /**
index 2108bf125890b74288e9f23a8fc1ca5d8b2af57a..184a7e4db4c20ab2a8347da5f6eb0fa5c23f861f 100644 (file)
@@ -36,6 +36,8 @@
 
 namespace Galette\Core;
 
+use DI\Attribute\Inject;
+
 /**
  * Plugin controllers trait
  *
index 8f25d717138c20b578edc2dff161b25cf4520217..31fb5ad74def6c73461e34f31ed9bd73c4b53285 100644 (file)
@@ -53,6 +53,7 @@ use Analog\Analog;
 use NumberFormatter;
 use PHPMailer\PHPMailer\PHPMailer;
 use Slim\Routing\RouteParser;
+use DI\Attribute\Inject;
 
 /**
  * Replacements feature
index 8fe578f0cb531107d46cca498e880ca62485eea7..30624f0308a672528115e6b068ee0e87803c58ab 100644 (file)
@@ -15,6 +15,5 @@ parameters:
         - GALETTE_NIGHTLY
     ignoreErrors:
         - '/Instantiated class XHProfRuns_Default not found/'
-        - '/Attribute class .*\\Inject does not exist./'
         - '/Cannot access property .* on .*ArrayObject.*/'
         - '/Access to an undefined property ArrayObject.*/'
index 00b79b07f8c4bec0a5e798273575ac6afb9aba8a..b8bafd838deabe9763234769f2ff4d6a83f6b88c 100644 (file)
@@ -141,6 +141,7 @@ class PdfController extends GaletteTestCase
 
         $response = new \Slim\Psr7\Response();
         $controller = new \Galette\Controllers\PdfController($this->container);
+        $this->container->injectOn($controller);
 
         $test_response = $controller->storeModels($request, $response);
         $this->assertSame(
@@ -179,6 +180,7 @@ class PdfController extends GaletteTestCase
 
         $response = new \Slim\Psr7\Response();
         $controller = new \Galette\Controllers\PdfController($this->container);
+        $this->container->injectOn($controller);
 
         //test with non-logged-in user
         $test_response = $controller->membersCards($request, $response, $this->adh->id);
@@ -243,6 +245,7 @@ class PdfController extends GaletteTestCase
 
         $response = new \Slim\Psr7\Response();
         $controller = new \Galette\Controllers\PdfController($this->container);
+        $this->container->injectOn($controller);
 
         //test logged-in as superadmin
         $this->logSuperAdmin();
@@ -285,6 +288,7 @@ class PdfController extends GaletteTestCase
 
         $response = new \Slim\Psr7\Response();
         $controller = new \Galette\Controllers\PdfController($this->container);
+        $this->container->injectOn($controller);
 
         //test with non-logged-in user
         $test_response = $controller->membersLabels($request, $response, $this->adh->id);
@@ -356,6 +360,7 @@ class PdfController extends GaletteTestCase
 
         $response = new \Slim\Psr7\Response();
         $controller = new \Galette\Controllers\PdfController($this->container);
+        $this->container->injectOn($controller);
 
         //test logged-in as superadmin
         $this->logSuperAdmin();
@@ -397,6 +402,7 @@ class PdfController extends GaletteTestCase
 
         $response = new \Slim\Psr7\Response();
         $controller = new \Galette\Controllers\PdfController($this->container);
+        $this->container->injectOn($controller);
 
         //test with non-logged-in user
         $test_response = $controller->adhesionForm($request, $response, $this->adh->id);
@@ -447,6 +453,7 @@ class PdfController extends GaletteTestCase
 
         $response = new \Slim\Psr7\Response();
         $controller = new \Galette\Controllers\PdfController($this->container);
+        $this->container->injectOn($controller);
 
         //test no selection
         $test_response = null;
@@ -504,6 +511,7 @@ class PdfController extends GaletteTestCase
 
         $response = new \Slim\Psr7\Response();
         $controller = new \Galette\Controllers\PdfController($this->container);
+        $this->container->injectOn($controller);
 
         //test not logged
         $test_response = $controller->contribution($request, $response, $this->contrib->id);
index 9fdc169a925d2b89c9deddad7e9955044c2deccb..5b27481713c057f368af3821dfbfe5f1ba77514b 100644 (file)
@@ -140,6 +140,7 @@ class CsvIn extends GaletteTestCase
 
         //get csv model file to add data in
         $controller = new \Galette\Controllers\CsvController($this->container);
+        $this->container->injectOn($controller);
 
         $rfactory = new \Slim\Psr7\Factory\RequestFactory();
         $request = $rfactory->createRequest('GET', 'http://localhost/models/csv');