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
*/
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
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');
}
/**
$response = new \Slim\Psr7\Response();
$controller = new \Galette\Controllers\PdfController($this->container);
+ $this->container->injectOn($controller);
$test_response = $controller->storeModels($request, $response);
$this->assertSame(
$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);
$response = new \Slim\Psr7\Response();
$controller = new \Galette\Controllers\PdfController($this->container);
+ $this->container->injectOn($controller);
//test logged-in as superadmin
$this->logSuperAdmin();
$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);
$response = new \Slim\Psr7\Response();
$controller = new \Galette\Controllers\PdfController($this->container);
+ $this->container->injectOn($controller);
//test logged-in as superadmin
$this->logSuperAdmin();
$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);
$response = new \Slim\Psr7\Response();
$controller = new \Galette\Controllers\PdfController($this->container);
+ $this->container->injectOn($controller);
//test no selection
$test_response = null;
$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);