]> 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>
Tue, 5 Mar 2024 20:47:21 +0000 (21:47 +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 7a538bf07e83375c73f945ae6ea809b8833a7db4..5356adaddadb9b35a0414884217d3ce7ccd3cebf 100644 (file)
@@ -97,6 +97,7 @@
     "DI\\autowire",
     "DI\\Container",
     "DI\\ContainerBuilder",
+    "DI\\Attribute\\Inject",
 
     "// Not detected, do not know why.",
     "Psr\\Http\\Server\\RequestHandlerInterface"
index 824b29d08d5d5f3e05f284a30d8a72ec5a154ed5..1392beb7bf32d9dab404f16aac46a615513ef86e 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
@@ -40,94 +55,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;
     /**
-     * @var \RKA\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<string,mixed>
      */
     #[Inject("members_fields")]
-    protected $members_fields;
+    protected array $members_fields;
     /**
      * @var array<string,mixed>
      */
     #[Inject("members_form_fields")]
-    protected $members_form_fields;
+    protected array $members_form_fields;
     /**
      * @var array<string,mixed>
      */
     #[Inject("members_fields_cats")]
-    protected $members_fields_cats;
+    protected array $members_fields_cats;
 
     /**
      * Constructor
@@ -137,25 +153,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 32a975ada9b3f38315df17dbec300320b994f45e..9679d0d0b8453ac329d7f49a3f9c09049bebdd1a 100644 (file)
@@ -21,6 +21,8 @@
 
 namespace Galette\Core;
 
+use DI\Attribute\Inject;
+
 /**
  * Plugin controllers trait
  *
index a4814ee47a40807147340283cae5d3972a389453..db1f1e1c29b606647618774a0748350460cead7b 100644 (file)
@@ -38,6 +38,7 @@ use Analog\Analog;
 use NumberFormatter;
 use PHPMailer\PHPMailer\PHPMailer;
 use Slim\Routing\RouteParser;
+use DI\Attribute\Inject;
 
 /**
  * Replacements feature
index e2bece4c668e3ccea9c7d5c60e9af80a1810f35c..93363e6e4506571b8e5fe5b48d72edc4d875c58b 100644 (file)
@@ -18,7 +18,6 @@ parameters:
         - RKA\Session
     ignoreErrors:
         - '/Instantiated class XHProfRuns_Default not found/'
-        - '/Attribute class .*\\Inject does not exist./'
         - '/Cannot access property .* on .*ArrayObject.*/'
         - '/Access to an undefined property ArrayObject.*/'
         - '/Parameter #3 \$right of class Laminas\\Db\\Sql\\Predicate\\Operator constructor expects bool\|float\|int\|string\|null, Laminas\\Db\\Sql\\Predicate\\Expression given./'
index a667a4ea8ac06f8ef3d49d43e1f5506eafdb38ec..a8f6b5603a472e15bd548c74a38d3ab781cf0b4c 100644 (file)
@@ -119,6 +119,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(
@@ -157,6 +158,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);
@@ -221,6 +223,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();
@@ -263,6 +266,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);
@@ -334,6 +338,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();
@@ -375,6 +380,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);
@@ -425,6 +431,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;
@@ -482,6 +489,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 3dda85b98bf1935ad87ee85d5e3ac4281207d7b4..daf5decd4eb187f06bcf0be404649780b9f62bea 100644 (file)
@@ -119,6 +119,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');