diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..723ef36f4e4f32c4560383aa5987c575a30c6535
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.idea
\ No newline at end of file
diff --git a/Module.php b/Module.php
index 4ebbf7a7c4b8d2a2b98fc823530243e5db612b0e..08c4513cb09078852d0f8962fa9f5bacca956cb6 100644
--- a/Module.php
+++ b/Module.php
@@ -2,11 +2,11 @@
 
 namespace UnicaenParametre;
 
-use Zend\Config\Factory as ConfigFactory;
-use Zend\Mvc\ModuleRouteListener;
-use Zend\Mvc\MvcEvent;
-use Zend\Stdlib\ArrayUtils;
-use Zend\Stdlib\Glob;
+use Laminas\Config\Factory as ConfigFactory;
+use Laminas\Mvc\ModuleRouteListener;
+use Laminas\Mvc\MvcEvent;
+use Laminas\Stdlib\ArrayUtils;
+use Laminas\Stdlib\Glob;
 
 class Module
 {
@@ -35,7 +35,7 @@ class Module
     public function getAutoloaderConfig()
     {
         return array(
-            'Zend\Loader\StandardAutoloader' => array(
+            'Laminas\Loader\StandardAutoloader' => array(
                 'namespaces' => array(
                     __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                 ),
diff --git a/composer.json b/composer.json
index 83efea6d5680053063879d7df00e4ee813564500..720c187eb4356118efbdfb6bb41445f432145429 100644
--- a/composer.json
+++ b/composer.json
@@ -1,6 +1,6 @@
 {
   "name": "unicaen/parametre",
-  "description": "Module de gestion de parametre",
+  "description": "Module de gestion de paramètres",
   "repositories": [
     {
       "type": "composer",
@@ -8,8 +8,7 @@
     }
   ],
   "require": {
-    "unicaen/app":                                  "^3.0",
-    "unicaen/privilege":                            "dev-master"
+    "unicaen/privilege":                            "^5"
   },
   "autoload": {
     "psr-0": {
diff --git a/config/example.php b/config/example.php
index e950d6c7b9f6b0f04bf3e4484cdfe4fc4bfb839a..2c5252feccd72e8780a608e82d54e71db392e9fe 100644
--- a/config/example.php
+++ b/config/example.php
@@ -3,8 +3,8 @@
 namespace UnicaenParametre;
 
 use UnicaenPrivilege\Guard\PrivilegeController;
-use Zend\Router\Http\Literal;
-use Zend\Router\Http\Segment;
+use Laminas\Router\Http\Literal;
+use Laminas\Router\Http\Segment;
 
 return [
     'bjyauthorize' => [
diff --git a/config/merged/categorie.config.php b/config/merged/categorie.config.php
index b4aacbcd93b62e31a1c9cb372dae63b61651bbd6..8d917c12954456bb1ccdd50c5e89c7e8963f09b1 100644
--- a/config/merged/categorie.config.php
+++ b/config/merged/categorie.config.php
@@ -12,8 +12,8 @@ use UnicaenParametre\Provider\Privilege\ParametrecategoriePrivileges;
 use UnicaenParametre\Service\Categorie\CategorieService;
 use UnicaenParametre\Service\Categorie\CategorieServiceFactory;
 use UnicaenPrivilege\Guard\PrivilegeController;
-use Zend\Router\Http\Literal;
-use Zend\Router\Http\Segment;
+use Laminas\Router\Http\Literal;
+use Laminas\Router\Http\Segment;
 
 return [
     'bjyauthorize' => [
@@ -51,27 +51,7 @@ return [
         ],
     ],
 
-    'navigation'      => [
-        'default' => [
-            'home' => [
-                'pages' => [
-                    'administration' => [
-                        'pages' => [
-                            'parametre' => [
-                                'label'    => 'Paramètres',
-                                'route'    => 'parametre/index',
-        //                            'resource' => PrivilegeController::getResourceId(CategorieController::class, 'index'),
-                                'resource' => ParametrecategoriePrivileges::getResourceId(ParametrecategoriePrivileges::PARAMETRECATEGORIE_INDEX),
-                                'order'    => 7020,
-                                'pages' => [],
-                                'icon' => 'fas fa-angle-right',
-                            ],
-                        ],
-                    ],
-                ],
-            ],
-        ],
-    ],
+    
 
     'router'          => [
         'routes' => [
diff --git a/config/merged/parametre.config.php b/config/merged/parametre.config.php
index 53c9ce95927660692d621342291fd02179da64ff..10f383f87993f136f89e0866a64028a0311603c7 100644
--- a/config/merged/parametre.config.php
+++ b/config/merged/parametre.config.php
@@ -10,8 +10,8 @@ use UnicaenParametre\Provider\Privilege\ParametrePrivileges;
 use UnicaenParametre\Service\Parametre\ParametreService;
 use UnicaenParametre\Service\Parametre\ParametreServiceFactory;
 use UnicaenPrivilege\Guard\PrivilegeController;
-use Zend\Router\Http\Literal;
-use Zend\Router\Http\Segment;
+use Laminas\Router\Http\Literal;
+use Laminas\Router\Http\Segment;
 
 return [
     'bjyauthorize' => [
diff --git a/config/unicaen-parametre.global.php.dist b/config/unicaen-parametre.global.php.dist
new file mode 100644
index 0000000000000000000000000000000000000000..17fd96069728f32cf7b137de0c6d4530f497150c
--- /dev/null
+++ b/config/unicaen-parametre.global.php.dist
@@ -0,0 +1,30 @@
+<?php
+
+namespace UnicaenParametre;
+
+use UnicaenParametre\Provider\Privilege\ParametrecategoriePrivileges;
+
+return [
+
+    'navigation' => [
+        'default' => [
+            'home' => [
+                'pages' => [
+                    'administration' => [
+                        'pages' => [
+                            'parametre' => [
+                                'label' => 'Paramètres',
+                                'route' => 'parametre/index',
+//                            'resource' => PrivilegeController::getResourceId(CategorieController::class, 'index'),
+                                'resource' => ParametrecategoriePrivileges::getResourceId(ParametrecategoriePrivileges::PARAMETRECATEGORIE_INDEX),
+                                'order' => 7020,
+                                'pages' => [],
+                                'icon' => 'fas fa-angle-right',
+                            ],
+                        ],
+                    ],
+                ],
+            ],
+        ],
+    ],
+];
\ No newline at end of file
diff --git a/readme.md b/readme.md
index 4dc1dee2f6531c2c35712ea9a676aaaed2c825ee..6778114e0efb1342df401d30bfe89248d3303541 100644
--- a/readme.md
+++ b/readme.md
@@ -1,40 +1,69 @@
 UnicaenParametre
 ============
 
-UnicaenParametre est une biltiothèque de gestion de catégories de paramètre et de paramètres.
+UnicaenParametre est une bibliothèque de gestion de paramètres.
+Les paramètres sont désignés par une catégorie et un code.
 
-Route d'accès
--------------
-- */parametre/index* donne accès aux paramètres de toutes les catégories
-- */parametre/index/categorieId* donne accès aux paramètres de la catégorie *categorieId*
+Le module fournit un menu d'administration permettant la déclaration des paramètres et de leur catégorie, 
+ainsi que l'affectation de leur valeur.
 
 Récupération de la valeur d'un paramètre
 ----------------------------------------
+
 ```php
-$this->getParametreService()->getParametreByCode('ma_categorie','mon_parametre')->getValeur();
+$this->getParametreService()->getValeurForParametre('ma_categorie','mon_parametre');
 ```
 
-**N.B.:** Il n'y a pas d'historisation des paramètres ou de leur catégorie. Est-ce bien nécessaire ?
+Si le paramètre n'est pas trouvé alors une exception ```ParametreNotFoundException``` est lancée.
+Si le paramètre n'est pas typé correctement alors une exception ```ParametreMalTypeException``` est lancée.
+
+***TODO***  À propos du typage :
+- Étendre le typage
+- Modifier le formulaire pour exploiter les types "déclarés"
+
+Bonnes pratiques
+----------------
+
+Afin de mieux référencer les catégories et les paramètres, il est recommandé de mettre en place un provider de parametres déclarant en constante : la catégorie  et les paramètres.
+
+```php
+<?php
+
+namespace Formation\Provider\Parametre;
+
+class FormationParametres {
+
+    const CATEGORIE = 'FORMATION';
+
+    const NB_PLACE_PRINCIPALE = 'NB_PLACE_PRINCIPALE';
+    const NB_PLACE_COMPLEMENTAIRE = 'NB_PLACE_COMPLEMENTAIRE';
+}
+```
 
 - - - - - - - - - - - - - 
 
+
 Installation
 ============
 
 Dans le répertoire **doc** du module, on retrouve le fichier *database.sql* qui permet de construire la table associée au
  module et d'ajouter les privilèges associés.
- 
-Le module s'attend à avoir un menu **Administration** pour mettre un menu secondaire **Paramètres**. 
-Pensez à l'ajouter s'il n'existe pas ou à modifier la naviguation dans *categorie.config.php*.
+
+La navigation est fourni par le fichier ```unicaen-parametre.global.php(.dist)``` et doit être adaptée à votre application.
 
 - - - - - - - - - - - - - 
 
-Historique
+
+ChangeLog
 ==========
 
-version 0.1.0 25/02/2021
-------------------------
-Version initiale du module.
+**5.0.1**
+- Ajout de la fonction de la valeur dans le service ParametreService
+- Ajout de l'exception ```ParametreNotFoundException```
+- Transformation des classes des entités *à la PHP8*
+
+**5.0.0**
+- Finalisation de la migration à BootStrap 5.
 
 Améliorations possibles
 -----------------------
diff --git a/src/UnicaenParametre/Controller/CategorieController.php b/src/UnicaenParametre/Controller/CategorieController.php
index ccfd1e304c4924fbffc09d9d61b26e6e13825181..adf6ca55fb4dddaf320906f84802ce9f332322b7 100644
--- a/src/UnicaenParametre/Controller/CategorieController.php
+++ b/src/UnicaenParametre/Controller/CategorieController.php
@@ -6,15 +6,15 @@ use UnicaenParametre\Entity\Db\Categorie;
 use UnicaenParametre\Form\Categorie\CategorieFormAwareTrait;
 use UnicaenParametre\Service\Categorie\CategorieServiceAwareTrait;
 use UnicaenParametre\Service\Parametre\ParametreServiceAwareTrait;
-use Zend\Mvc\Controller\AbstractActionController;
-use Zend\View\Model\ViewModel;
+use Laminas\Mvc\Controller\AbstractActionController;
+use Laminas\View\Model\ViewModel;
 
 class CategorieController extends AbstractActionController {
     use CategorieServiceAwareTrait;
     use ParametreServiceAwareTrait;
     use CategorieFormAwareTrait;
 
-    public function indexAction()
+    public function indexAction() : ViewModel
     {
         $categories = $this->getCategorieService()->getCategories();
         $parametres = $this->getParametreService()->getParametres();
@@ -27,7 +27,8 @@ class CategorieController extends AbstractActionController {
         ]);
     }
 
-    public function ajouterAction() {
+    public function ajouterAction() : ViewModel
+    {
 
         $categorie = new Categorie();
         $form = $this->getCategorieForm();
@@ -51,7 +52,7 @@ class CategorieController extends AbstractActionController {
         return $vm;
     }
 
-    public function modifierAction()
+    public function modifierAction() : ViewModel
     {
         $categorie = $this->getCategorieService()->getRequestedCategorie($this);
         $form = $this->getCategorieForm();
@@ -76,7 +77,7 @@ class CategorieController extends AbstractActionController {
         return $vm;
     }
 
-    public function supprimerAction()
+    public function supprimerAction() : ViewModel
     {
         $categorie = $this->getCategorieService()->getRequestedCategorie($this);
 
diff --git a/src/UnicaenParametre/Controller/CategorieControllerFactory.php b/src/UnicaenParametre/Controller/CategorieControllerFactory.php
index 9c68897f94f43a3299d80db67742ee0054d7fcf7..fc93b57320b8f10785efa24873a4336f0d939a53 100644
--- a/src/UnicaenParametre/Controller/CategorieControllerFactory.php
+++ b/src/UnicaenParametre/Controller/CategorieControllerFactory.php
@@ -3,13 +3,21 @@
 namespace UnicaenParametre\Controller;
 
 use Interop\Container\ContainerInterface;
+use Psr\Container\ContainerExceptionInterface;
+use Psr\Container\NotFoundExceptionInterface;
 use UnicaenParametre\Form\Categorie\CategorieForm;
 use UnicaenParametre\Service\Categorie\CategorieService;
 use UnicaenParametre\Service\Parametre\ParametreService;
 
 class CategorieControllerFactory {
 
-    public function __invoke(ContainerInterface $container)
+    /**
+     * @param ContainerInterface $container
+     * @return CategorieController
+     * @throws ContainerExceptionInterface
+     * @throws NotFoundExceptionInterface
+     */
+    public function __invoke(ContainerInterface $container) : CategorieController
     {
         /**
          * @var CategorieService $categorieService
diff --git a/src/UnicaenParametre/Controller/ParametreController.php b/src/UnicaenParametre/Controller/ParametreController.php
index c812a31c31deb2ac964f93ff5d1fd747b7d3d614..f53f7c1a52e9b5fdd669b7d67e82b298e30b5cfb 100644
--- a/src/UnicaenParametre/Controller/ParametreController.php
+++ b/src/UnicaenParametre/Controller/ParametreController.php
@@ -6,15 +6,15 @@ use UnicaenParametre\Entity\Db\Parametre;
 use UnicaenParametre\Form\Parametre\ParametreFormAwareTrait;
 use UnicaenParametre\Service\Categorie\CategorieServiceAwareTrait;
 use UnicaenParametre\Service\Parametre\ParametreServiceAwareTrait;
-use Zend\Mvc\Controller\AbstractActionController;
-use Zend\View\Model\ViewModel;
+use Laminas\Mvc\Controller\AbstractActionController;
+use Laminas\View\Model\ViewModel;
 
 class ParametreController extends AbstractActionController {
     use CategorieServiceAwareTrait;
     use ParametreServiceAwareTrait;
     use ParametreFormAwareTrait;
 
-    public function ajouterAction()
+    public function ajouterAction() : ViewModel
     {
         $categorie = $this->getCategorieService()->getRequestedCategorie($this);
         $parametre = new Parametre();
@@ -41,7 +41,7 @@ class ParametreController extends AbstractActionController {
         return $vm;
     }
 
-    public function modifierAction()
+    public function modifierAction() : ViewModel
     {
         $parametre = $this->getParametreService()->getRequestedParametre($this);
         $form = $this->getParametreForm();
@@ -67,7 +67,7 @@ class ParametreController extends AbstractActionController {
         return $vm;
     }
 
-    public function supprimerAction()
+    public function supprimerAction() : ViewModel
     {
         $parametre = $this->getParametreService()->getRequestedParametre($this);
 
@@ -90,7 +90,7 @@ class ParametreController extends AbstractActionController {
         return $vm;
     }
 
-    public function modifierValeurAction()
+    public function modifierValeurAction() : ViewModel
     {
         $parametre = $this->getParametreService()->getRequestedParametre($this);
 
diff --git a/src/UnicaenParametre/Controller/ParametreControllerFactory.php b/src/UnicaenParametre/Controller/ParametreControllerFactory.php
index 8bbc5e00ca5ab037ae9ee9a3aae1567abb7f04df..c73a898e599d904e35f03d3b93fb538f45220a27 100644
--- a/src/UnicaenParametre/Controller/ParametreControllerFactory.php
+++ b/src/UnicaenParametre/Controller/ParametreControllerFactory.php
@@ -3,6 +3,8 @@
 namespace UnicaenParametre\Controller;
 
 use Interop\Container\ContainerInterface;
+use Psr\Container\ContainerExceptionInterface;
+use Psr\Container\NotFoundExceptionInterface;
 use UnicaenParametre\Form\Parametre\ParametreForm;
 use UnicaenParametre\Service\Categorie\CategorieService;
 use UnicaenParametre\Service\Parametre\ParametreService;
@@ -12,8 +14,10 @@ class ParametreControllerFactory {
     /**
      * @param ContainerInterface $container
      * @return ParametreController
+     * @throws ContainerExceptionInterface
+     * @throws NotFoundExceptionInterface
      */
-    public function __invoke(ContainerInterface $container)
+    public function __invoke(ContainerInterface $container) : ParametreController
     {
         /**
          * @var CategorieService $categorieService
diff --git a/src/UnicaenParametre/Entity/Db/Categorie.php b/src/UnicaenParametre/Entity/Db/Categorie.php
index 49cc9fb745e1ed4ab2d244ada9251479f5956fda..bce4cfb41fbc01561386442e432e10a4a7f9a578 100644
--- a/src/UnicaenParametre/Entity/Db/Categorie.php
+++ b/src/UnicaenParametre/Entity/Db/Categorie.php
@@ -6,91 +6,55 @@ class Categorie
 {
     const DEFAULT_ORDER = 9999;
 
-    /** @var integer */
-    private $id;
-    /** @var string */
-    private $code;
-    /** @var string */
-    private $libelle;
-    /** @var string */
-    private $description;
-    /** @var integer */
-    private $ordre;
+    private ?int $id = null;
+    private ?string $code = null;
+    private ?string $libelle = null;
+    private ?string $description = null;
+    private ?int $ordre = null;
 
-    /**
-     * @return int
-     */
     public function getId(): int
     {
         return $this->id;
     }
 
-    /**
-     * @return string|null
-     */
     public function getCode(): ?string
     {
         return $this->code;
     }
 
-    /**
-     * @param string|null $code
-     * @return Categorie
-     */
     public function setCode(?string $code): Categorie
     {
         $this->code = $code;
         return $this;
     }
 
-    /**
-     * @return string|null
-     */
     public function getLibelle(): ?string
     {
         return $this->libelle;
     }
 
-    /**
-     * @param string|null $libelle
-     * @return Categorie
-     */
     public function setLibelle(?string $libelle): Categorie
     {
         $this->libelle = $libelle;
         return $this;
     }
 
-    /**
-     * @return string|null
-     */
     public function getDescription(): ?string
     {
         return $this->description;
     }
 
-    /**
-     * @param string|null $description
-     * @return Categorie
-     */
     public function setDescription(?string $description): Categorie
     {
         $this->description = $description;
         return $this;
     }
 
-    /**
-     * @return int|null
-     */
     public function getOrdre(): ?int
     {
         return $this->ordre;
     }
 
-    /**
-     * @param int $ordre
-     * @return Categorie
-     */
     public function setOrdre(int $ordre = Categorie::DEFAULT_ORDER): Categorie
     {
         $this->ordre = $ordre;
diff --git a/src/UnicaenParametre/Entity/Db/Parametre.php b/src/UnicaenParametre/Entity/Db/Parametre.php
index 85b31397ebdea9b36f49da6d34ad9062d8161b24..2ca7cc2fd7c23297ff397594965159f0cb235f90 100644
--- a/src/UnicaenParametre/Entity/Db/Parametre.php
+++ b/src/UnicaenParametre/Entity/Db/Parametre.php
@@ -6,151 +6,95 @@ class Parametre
 {
     const DEFAULT_ORDER = 9999;
 
-    /** @var integer */
-    private $id;
-    /** @var Categorie */
-    private $categorie;
-    /** @var string */
-    private $code;
-    /** @var string */
-    private $libelle;
-    /** @var string */
-    private $description;
-    /** @var string */
-    private $valeur;
-    /** @var string */
-    private $valeurs_possibles;
-    /** @var integer */
-    private $ordre;
-
-    /**
-     * @return int
-     */
+    const TYPE_STRING   = "String";
+    const TYPE_BOOLEAN  = "Boolean";
+    const TYPE_NUMBER   = "Number";
+
+    private ?int $id = null;
+    private ?Categorie $categorie = null;
+    private ?string $code = null;
+    private ?string $libelle = null;
+    private ?string $description = null;
+    private ?string $valeur = null;
+    private ?string $valeurs_possibles = null;
+    private ?int $ordre = null;
+
     public function getId(): int
     {
         return $this->id;
     }
 
-    /**
-     * @return Categorie|null
-     */
     public function getCategorie(): ?Categorie
     {
         return $this->categorie;
     }
 
-    /**
-     * @param Categorie|null $categorie
-     * @return Parametre
-     */
     public function setCategorie(?Categorie $categorie): Parametre
     {
         $this->categorie = $categorie;
         return $this;
     }
 
-    /**
-     * @return string|null
-     */
     public function getCode(): ?string
     {
         return $this->code;
     }
 
-    /**
-     * @param string|null $code
-     * @return Parametre
-     */
     public function setCode(?string $code): Parametre
     {
         $this->code = $code;
         return $this;
     }
 
-    /**
-     * @return string|null
-     */
     public function getLibelle(): ?string
     {
         return $this->libelle;
     }
 
-    /**
-     * @param string|null $libelle
-     * @return Parametre
-     */
     public function setLibelle(?string $libelle): Parametre
     {
         $this->libelle = $libelle;
         return $this;
     }
 
-    /**
-     * @return string|null
-     */
     public function getDescription(): ?string
     {
         return $this->description;
     }
 
-    /**
-     * @param string|null $description
-     * @return Parametre
-     */
     public function setDescription(?string $description): Parametre
     {
         $this->description = $description;
         return $this;
     }
 
-    /**
-     * @return string|null
-     */
     public function getValeur(): ?string
     {
         return $this->valeur;
     }
 
-    /**
-     * @param string|null $valeur
-     * @return Parametre
-     */
     public function setValeur(?string $valeur): Parametre
     {
         $this->valeur = $valeur;
         return $this;
     }
 
-    /**
-     * @return string|null
-     */
     public function getValeursPossibles(): ?string
     {
         return $this->valeurs_possibles;
     }
 
-    /**
-     * @param string|null $valeurs_possibles
-     * @return Parametre
-     */
     public function setValeursPossibles(?string $valeurs_possibles): Parametre
     {
         $this->valeurs_possibles = $valeurs_possibles;
         return $this;
     }
 
-    /**
-     * @return int|null
-     */
     public function getOrdre(): ?int
     {
         return $this->ordre;
     }
 
-    /**
-     * @param int $ordre
-     * @return Parametre
-     */
     public function setOrdre(int $ordre = Parametre::DEFAULT_ORDER): Parametre
     {
         $this->ordre = $ordre;
diff --git a/src/UnicaenParametre/Exception/ParametreMalTypeException.php b/src/UnicaenParametre/Exception/ParametreMalTypeException.php
new file mode 100644
index 0000000000000000000000000000000000000000..8166bd7a873acc6dddcc89a3087318bf729d1475
--- /dev/null
+++ b/src/UnicaenParametre/Exception/ParametreMalTypeException.php
@@ -0,0 +1,7 @@
+<?php
+
+namespace parametre\src\UnicaenParametre\Exception;
+
+use Exception;
+
+class ParametreMalTypeException extends Exception {}
\ No newline at end of file
diff --git a/src/UnicaenParametre/Exception/ParametreNotFoundException.php b/src/UnicaenParametre/Exception/ParametreNotFoundException.php
new file mode 100644
index 0000000000000000000000000000000000000000..e42a1070dbdfe3d061d6d97feecd6cf09576477a
--- /dev/null
+++ b/src/UnicaenParametre/Exception/ParametreNotFoundException.php
@@ -0,0 +1,7 @@
+<?php
+
+namespace UnicaenParametre\Exception;
+
+use Exception;
+
+class ParametreNotFoundException extends Exception {}
\ No newline at end of file
diff --git a/src/UnicaenParametre/Form/Categorie/CategorieForm.php b/src/UnicaenParametre/Form/Categorie/CategorieForm.php
index 4dddae66f46b727561e23d3644f6bf3ea1623433..bcffc3b49890f8dd95e8272a6f6832ef1825da71 100644
--- a/src/UnicaenParametre/Form/Categorie/CategorieForm.php
+++ b/src/UnicaenParametre/Form/Categorie/CategorieForm.php
@@ -3,14 +3,14 @@
 namespace UnicaenParametre\Form\Categorie;
 
 use UnicaenParametre\Service\Categorie\CategorieServiceAwareTrait;
-use Zend\Form\Element\Button;
-use Zend\Form\Element\Hidden;
-use Zend\Form\Element\Number;
-use Zend\Form\Element\Text;
-use Zend\Form\Element\Textarea;
-use Zend\Form\Form;
-use Zend\InputFilter\Factory;
-use Zend\Validator\Callback;
+use Laminas\Form\Element\Button;
+use Laminas\Form\Element\Hidden;
+use Laminas\Form\Element\Number;
+use Laminas\Form\Element\Text;
+use Laminas\Form\Element\Textarea;
+use Laminas\Form\Form;
+use Laminas\InputFilter\Factory;
+use Laminas\Validator\Callback;
 
 class CategorieForm extends Form {
     use CategorieServiceAwareTrait;
@@ -91,7 +91,7 @@ class CategorieForm extends Form {
             ],
             'attributes' => [
                 'type' => 'submit',
-                'class' => 'btn btn-default',
+                'class' => 'btn btn-primary',
             ],
         ]);
         //input filter
diff --git a/src/UnicaenParametre/Form/Categorie/CategorieFormAwareTrait.php b/src/UnicaenParametre/Form/Categorie/CategorieFormAwareTrait.php
index 4d4ee6b053a263f6e01d72f574ccdebd21c34b08..e61ff38195ae889ab4a63cd7f770c03ac6777305 100644
--- a/src/UnicaenParametre/Form/Categorie/CategorieFormAwareTrait.php
+++ b/src/UnicaenParametre/Form/Categorie/CategorieFormAwareTrait.php
@@ -4,24 +4,15 @@ namespace UnicaenParametre\Form\Categorie;
 
 trait CategorieFormAwareTrait {
 
-    /** @var CategorieForm */
-    private $categorieForm;
+    private CategorieForm $categorieForm;
 
-    /**
-     * @return CategorieForm
-     */
     public function getCategorieForm(): CategorieForm
     {
         return $this->categorieForm;
     }
 
-    /**
-     * @param CategorieForm $categorieForm
-     * @return CategorieForm
-     */
-    public function setCategorieForm(CategorieForm $categorieForm): CategorieForm
+    public function setCategorieForm(CategorieForm $categorieForm): void
     {
         $this->categorieForm = $categorieForm;
-        return $this->categorieForm;
     }
 }
\ No newline at end of file
diff --git a/src/UnicaenParametre/Form/Categorie/CategorieFormFactory.php b/src/UnicaenParametre/Form/Categorie/CategorieFormFactory.php
index 8233d980c3e15c57e5d19d957375864ea987eeaf..541e82d12150972778642c13cb7db60afe051b35 100644
--- a/src/UnicaenParametre/Form/Categorie/CategorieFormFactory.php
+++ b/src/UnicaenParametre/Form/Categorie/CategorieFormFactory.php
@@ -3,6 +3,8 @@
 namespace UnicaenParametre\Form\Categorie;
 
 use Interop\Container\ContainerInterface;
+use Psr\Container\ContainerExceptionInterface;
+use Psr\Container\NotFoundExceptionInterface;
 use UnicaenParametre\Service\Categorie\CategorieService;
 
 class CategorieFormFactory {
@@ -10,8 +12,10 @@ class CategorieFormFactory {
     /**
      * @param ContainerInterface $container
      * @return CategorieForm
+     * @throws ContainerExceptionInterface
+     * @throws NotFoundExceptionInterface
      */
-    public function __invoke(ContainerInterface $container)
+    public function __invoke(ContainerInterface $container) : CategorieForm
     {
         /**
          * @var CategorieService $categorieService
diff --git a/src/UnicaenParametre/Form/Categorie/CategorieHydrator.php b/src/UnicaenParametre/Form/Categorie/CategorieHydrator.php
index f48b211a46d071da95707b718cabf6ce8c1a14c8..48e53152218f2df5c497737714bc00f68bf29369 100644
--- a/src/UnicaenParametre/Form/Categorie/CategorieHydrator.php
+++ b/src/UnicaenParametre/Form/Categorie/CategorieHydrator.php
@@ -3,7 +3,7 @@
 namespace UnicaenParametre\Form\Categorie;
 
 use UnicaenParametre\Entity\Db\Categorie;
-use Zend\Hydrator\HydratorInterface;
+use Laminas\Hydrator\HydratorInterface;
 
 class CategorieHydrator implements HydratorInterface {
 
@@ -11,7 +11,7 @@ class CategorieHydrator implements HydratorInterface {
      * @param Categorie $object
      * @return array|void
      */
-    public function extract($object)
+    public function extract(object $object) : array
     {
         $data = [
             'code' => $object->getCode(),
@@ -27,7 +27,7 @@ class CategorieHydrator implements HydratorInterface {
      * @param Categorie $object
      * @return Categorie
      */
-    public function hydrate(array $data, $object)
+    public function hydrate(array $data, $object) : object
     {
         $code = (isset($data['code']) and trim($data['code']) !== '')?trim($data['code']):null;
         $libelle = (isset($data['libelle']) and trim($data['libelle']) !== '')?trim($data['libelle']):null;
diff --git a/src/UnicaenParametre/Form/Categorie/CategorieHydratorFactory.php b/src/UnicaenParametre/Form/Categorie/CategorieHydratorFactory.php
index 917af1722d533e1f70c2f3fd05d9a44ae2078750..ca90fce99313c059559341c02666faf66d902386 100644
--- a/src/UnicaenParametre/Form/Categorie/CategorieHydratorFactory.php
+++ b/src/UnicaenParametre/Form/Categorie/CategorieHydratorFactory.php
@@ -10,7 +10,7 @@ class CategorieHydratorFactory {
      * @param ContainerInterface $container
      * @return CategorieHydrator
      */
-    public function __invoke(ContainerInterface $container)
+    public function __invoke(ContainerInterface $container) : CategorieHydrator
     {
         $hydrator = new CategorieHydrator();
         return $hydrator;
diff --git a/src/UnicaenParametre/Form/Parametre/ParametreForm.php b/src/UnicaenParametre/Form/Parametre/ParametreForm.php
index 7e3cadee584bce2439e2e0a2f95d6d980627c91f..f8a4d233aef6987c9da3bbecd90c2e7c76e35377 100644
--- a/src/UnicaenParametre/Form/Parametre/ParametreForm.php
+++ b/src/UnicaenParametre/Form/Parametre/ParametreForm.php
@@ -4,14 +4,14 @@ namespace UnicaenParametre\Form\Parametre;
 
 use UnicaenParametre\Entity\Db\Categorie;
 use UnicaenParametre\Service\Parametre\ParametreServiceAwareTrait;
-use Zend\Form\Element\Button;
-use Zend\Form\Element\Hidden;
-use Zend\Form\Element\Number;
-use Zend\Form\Element\Text;
-use Zend\Form\Element\Textarea;
-use Zend\Form\Form;
-use Zend\InputFilter\Factory;
-use Zend\Validator\Callback;
+use Laminas\Form\Element\Button;
+use Laminas\Form\Element\Hidden;
+use Laminas\Form\Element\Number;
+use Laminas\Form\Element\Text;
+use Laminas\Form\Element\Textarea;
+use Laminas\Form\Form;
+use Laminas\InputFilter\Factory;
+use Laminas\Validator\Callback;
 
 class ParametreForm extends Form {
     use ParametreServiceAwareTrait;
@@ -109,7 +109,7 @@ class ParametreForm extends Form {
             ],
             'attributes' => [
                 'type' => 'submit',
-                'class' => 'btn btn-default',
+                'class' => 'btn btn-primary',
             ],
         ]);
         //input filter
diff --git a/src/UnicaenParametre/Form/Parametre/ParametreFormAwareTrait.php b/src/UnicaenParametre/Form/Parametre/ParametreFormAwareTrait.php
index fa9fb56fd8a529522861cdac8e8804342b61f7fe..97e027cd0bd2d8b4720cfaaf5c5aba9f70fdc3b4 100644
--- a/src/UnicaenParametre/Form/Parametre/ParametreFormAwareTrait.php
+++ b/src/UnicaenParametre/Form/Parametre/ParametreFormAwareTrait.php
@@ -4,24 +4,15 @@ namespace UnicaenParametre\Form\Parametre;
 
 trait ParametreFormAwareTrait {
 
-    /** @var ParametreForm */
-    private $parametreForm;
+    private ParametreForm $parametreForm;
 
-    /**
-     * @return ParametreForm
-     */
     public function getParametreForm(): ParametreForm
     {
         return $this->parametreForm;
     }
 
-    /**
-     * @param ParametreForm $parametreForm
-     * @return ParametreForm
-     */
-    public function setParametreForm(ParametreForm $parametreForm): ParametreForm
+    public function setParametreForm(ParametreForm $parametreForm): void
     {
         $this->parametreForm = $parametreForm;
-        return $this->parametreForm;
     }
 }
\ No newline at end of file
diff --git a/src/UnicaenParametre/Form/Parametre/ParametreFormFactory.php b/src/UnicaenParametre/Form/Parametre/ParametreFormFactory.php
index 1a425c7cd86e6b731eb452e600e378ca3bd03652..4a7f14c99b81e9a1010ee6635d79fdb6981d19ab 100644
--- a/src/UnicaenParametre/Form/Parametre/ParametreFormFactory.php
+++ b/src/UnicaenParametre/Form/Parametre/ParametreFormFactory.php
@@ -3,11 +3,19 @@
 namespace UnicaenParametre\Form\Parametre;
 
 use Interop\Container\ContainerInterface;
+use Psr\Container\ContainerExceptionInterface;
+use Psr\Container\NotFoundExceptionInterface;
 use UnicaenParametre\Service\Parametre\ParametreService;
 
 class ParametreFormFactory {
 
-    public function __invoke(ContainerInterface $container)
+    /**
+     * @param ContainerInterface $container
+     * @return ParametreForm
+     * @throws ContainerExceptionInterface
+     * @throws NotFoundExceptionInterface
+     */
+    public function __invoke(ContainerInterface $container) : ParametreForm
     {
         /**
          * @var ParametreService $parametreService
diff --git a/src/UnicaenParametre/Form/Parametre/ParametreHydrator.php b/src/UnicaenParametre/Form/Parametre/ParametreHydrator.php
index 694b36779970f2c987f8e49b939af166d29bef96..6608fe0ec314a46125fa243ed8e9c523a64fa12d 100644
--- a/src/UnicaenParametre/Form/Parametre/ParametreHydrator.php
+++ b/src/UnicaenParametre/Form/Parametre/ParametreHydrator.php
@@ -3,7 +3,7 @@
 namespace UnicaenParametre\Form\Parametre;
 
 use UnicaenParametre\Entity\Db\Parametre;
-use Zend\Hydrator\HydratorInterface;
+use Laminas\Hydrator\HydratorInterface;
 
 class ParametreHydrator implements HydratorInterface {
 
@@ -11,7 +11,7 @@ class ParametreHydrator implements HydratorInterface {
      * @param Parametre $object
      * @return array
      */
-    public function extract($object)
+    public function extract($object) : array
     {
         $data = [
             'code' => $object->getCode(),
@@ -28,7 +28,7 @@ class ParametreHydrator implements HydratorInterface {
      * @param Parametre $object
      * @return Parametre
      */
-    public function hydrate(array $data, $object)
+    public function hydrate(array $data, $object) : object
     {
         $code = (isset($data['code']) and trim($data['code']) !== '')?trim($data['code']):null;
         $libelle = (isset($data['libelle']) and trim($data['libelle']) !== '')?trim($data['libelle']):null;
diff --git a/src/UnicaenParametre/Form/Parametre/ParametreHydratorFactory.php b/src/UnicaenParametre/Form/Parametre/ParametreHydratorFactory.php
index d47450e42ff4944f258134227ef28fbc0385bc8b..5808b05af9a8ee8c430ce8f7723bbffc8c57c899 100644
--- a/src/UnicaenParametre/Form/Parametre/ParametreHydratorFactory.php
+++ b/src/UnicaenParametre/Form/Parametre/ParametreHydratorFactory.php
@@ -10,7 +10,7 @@ class ParametreHydratorFactory {
      * @param ContainerInterface $container
      * @return ParametreHydrator
      */
-    public function __invoke(ContainerInterface $container)
+    public function __invoke(ContainerInterface $container) : ParametreHydrator
     {
         $hydrator = new ParametreHydrator();
         return $hydrator;
diff --git a/src/UnicaenParametre/Service/Categorie/CategorieService.php b/src/UnicaenParametre/Service/Categorie/CategorieService.php
index 2c0a4ece153c2f4b0b16d01b39032923ca7935f0..381468a972ed2d7d65c981052a21ec2d51237ede 100644
--- a/src/UnicaenParametre/Service/Categorie/CategorieService.php
+++ b/src/UnicaenParametre/Service/Categorie/CategorieService.php
@@ -5,13 +5,14 @@ namespace UnicaenParametre\Service\Categorie;
 use Doctrine\ORM\NonUniqueResultException;
 use Doctrine\ORM\ORMException;
 use Doctrine\ORM\QueryBuilder;
-use UnicaenApp\Exception\RuntimeException;
-use UnicaenApp\Service\EntityManagerAwareTrait;
+use DoctrineModule\Persistence\ProvidesObjectManager;
+use Laminas\Mvc\Controller\AbstractActionController;
+use RuntimeException;
 use UnicaenParametre\Entity\Db\Categorie;
-use Zend\Mvc\Controller\AbstractActionController;
 
-class CategorieService {
-    use EntityManagerAwareTrait;
+class CategorieService
+{
+    use ProvidesObjectManager;
 
     /** GESTION ENTITY ************************************************************************************************/
 
@@ -19,13 +20,13 @@ class CategorieService {
      * @param Categorie $categorie
      * @return Categorie
      */
-    public function create(Categorie $categorie) : Categorie
+    public function create(Categorie $categorie): Categorie
     {
         try {
-            $this->getEntityManager()->persist($categorie);
-            $this->getEntityManager()->flush($categorie);
+            $this->getObjectManager()->persist($categorie);
+            $this->getObjectManager()->flush($categorie);
         } catch (ORMException $e) {
-            throw new RuntimeException("Une erreur s'est produite lors de l'enregistrement en base.",0,$e);
+            throw new RuntimeException("Une erreur s'est produite lors de l'enregistrement en base.", 0, $e);
         }
         return $categorie;
     }
@@ -34,12 +35,12 @@ class CategorieService {
      * @param Categorie $categorie
      * @return Categorie
      */
-    public function update(Categorie $categorie) : Categorie
+    public function update(Categorie $categorie): Categorie
     {
         try {
-            $this->getEntityManager()->flush($categorie);
+            $this->getObjectManager()->flush($categorie);
         } catch (ORMException $e) {
-            throw new RuntimeException("Une erreur s'est produite lors de la mise à jour en base.",0,$e);
+            throw new RuntimeException("Une erreur s'est produite lors de la mise à jour en base.", 0, $e);
         }
         return $categorie;
     }
@@ -48,13 +49,13 @@ class CategorieService {
      * @param Categorie $categorie
      * @return Categorie
      */
-    public function delete(Categorie $categorie) : Categorie
+    public function delete(Categorie $categorie): Categorie
     {
         try {
-            $this->getEntityManager()->remove($categorie);
-            $this->getEntityManager()->flush($categorie);
+            $this->getObjectManager()->remove($categorie);
+            $this->getObjectManager()->flush($categorie);
         } catch (ORMException $e) {
-            throw new RuntimeException("Une erreur s'est produite lors de la suppression en base.",0,$e);
+            throw new RuntimeException("Une erreur s'est produite lors de la suppression en base.", 0, $e);
         }
         return $categorie;
     }
@@ -64,17 +65,18 @@ class CategorieService {
     /**
      * @return QueryBuilder
      */
-    public function createQueryBuilder() : QueryBuilder
+    public function createQueryBuilder(): QueryBuilder
     {
-        $qb = $this->getEntityManager()->getRepository(Categorie::class)->createQueryBuilder('categorie');
+        $qb = $this->getObjectManager()->getRepository(Categorie::class)->createQueryBuilder('categorie');
         return $qb;
     }
+
     /**
      * @param string $champ
      * @param string $ordre
      * @return Categorie[]
      */
-    public function getCategories(string $champ="ordre", string $ordre="ASC") : array
+    public function getCategories(string $champ = "ordre", string $ordre = "ASC"): array
     {
         $qb = $this->createQueryBuilder()
             ->orderBy('categorie.' . $champ, $ordre);
@@ -88,9 +90,9 @@ class CategorieService {
      * @param string $ordre
      * @return array
      */
-    public function getCategoriesAsOptions(string $champ="ordre", string $ordre="ASC") : array
+    public function getCategoriesAsOptions(string $champ = "ordre", string $ordre = "ASC"): array
     {
-        $categories = $this->getCategories($champ,$ordre);
+        $categories = $this->getCategories($champ, $ordre);
         $array = [];
         foreach ($categories as $categorie) {
             $array[$categorie->getId()] = $categorie->getLibelle();
@@ -102,16 +104,15 @@ class CategorieService {
      * @param int|null $id
      * @return Categorie|null
      */
-    public function getCategorie(?int $id) : ?Categorie
+    public function getCategorie(?int $id): ?Categorie
     {
         $qb = $this->createQueryBuilder()
             ->andWhere('categorie.id = :id')
-            ->setParameter('id', $id)
-        ;
+            ->setParameter('id', $id);
         try {
             $result = $qb->getQuery()->getOneOrNullResult();
         } catch (NonUniqueResultException $e) {
-            throw new RuntimeException("Plusieurs ParamatreCategorie partagent le même id [".$id."]",0,$e);
+            throw new RuntimeException("Plusieurs ParamatreCategorie partagent le même id [" . $id . "]", 0, $e);
         }
         return $result;
     }
@@ -120,16 +121,15 @@ class CategorieService {
      * @param string $code
      * @return Categorie|null
      */
-    public function getCategoriebyCode(string $code) : ?Categorie
+    public function getCategoriebyCode(string $code): ?Categorie
     {
         $qb = $this->createQueryBuilder()
             ->andWhere('categorie.code = :code')
-            ->setParameter('code', $code)
-        ;
+            ->setParameter('code', $code);
         try {
             $result = $qb->getQuery()->getOneOrNullResult();
         } catch (NonUniqueResultException $e) {
-            throw new RuntimeException("Plusieurs ParamatreCategorie partagent le même code [".$code."]",0,$e);
+            throw new RuntimeException("Plusieurs ParamatreCategorie partagent le même code [" . $code . "]", 0, $e);
         }
         return $result;
     }
@@ -139,7 +139,7 @@ class CategorieService {
      * @param string $param
      * @return Categorie|null
      */
-    public function getRequestedCategorie(AbstractActionController $controller, string $param='categorie') : ?Categorie
+    public function getRequestedCategorie(AbstractActionController $controller, string $param = 'categorie'): ?Categorie
     {
         $id = $controller->params()->fromRoute($param);
         $result = $this->getCategorie($id);
diff --git a/src/UnicaenParametre/Service/Categorie/CategorieServiceAwareTrait.php b/src/UnicaenParametre/Service/Categorie/CategorieServiceAwareTrait.php
index 93ecb4d475be7370272fabe39124b6d967258760..67d07a604cf5148bf3999d1ab949b46e927e5493 100644
--- a/src/UnicaenParametre/Service/Categorie/CategorieServiceAwareTrait.php
+++ b/src/UnicaenParametre/Service/Categorie/CategorieServiceAwareTrait.php
@@ -4,25 +4,16 @@ namespace UnicaenParametre\Service\Categorie;
 
 trait CategorieServiceAwareTrait {
 
-    /** @var CategorieService */
-    private $parametreCategorieService;
+    private CategorieService $parametreCategorieService;
 
-    /**
-     * @return CategorieService
-     */
     public function getCategorieService(): CategorieService
     {
         return $this->parametreCategorieService;
     }
 
-    /**
-     * @param CategorieService $parametreCategorieService
-     * @return CategorieService
-     */
-    public function setCategorieService(CategorieService $parametreCategorieService): CategorieService
+    public function setCategorieService(CategorieService $parametreCategorieService): void
     {
         $this->parametreCategorieService = $parametreCategorieService;
-        return $this->parametreCategorieService;
     }
 
 }
\ No newline at end of file
diff --git a/src/UnicaenParametre/Service/Categorie/CategorieServiceFactory.php b/src/UnicaenParametre/Service/Categorie/CategorieServiceFactory.php
index f8b96d4a79f68de43d1b0efa0cf3e39568a9f263..a105c7e443e8948bb8c89668c7a3ef6a2c1ff948 100644
--- a/src/UnicaenParametre/Service/Categorie/CategorieServiceFactory.php
+++ b/src/UnicaenParametre/Service/Categorie/CategorieServiceFactory.php
@@ -4,14 +4,19 @@ namespace UnicaenParametre\Service\Categorie;
 
 use Doctrine\ORM\EntityManager;
 use Interop\Container\ContainerInterface;
+use Psr\Container\ContainerExceptionInterface;
+use Psr\Container\NotFoundExceptionInterface;
 
-class CategorieServiceFactory {
+class CategorieServiceFactory
+{
 
     /**
      * @param ContainerInterface $container
      * @return CategorieService
+     * @throws ContainerExceptionInterface
+     * @throws NotFoundExceptionInterface
      */
-    public function __invoke(ContainerInterface $container)
+    public function __invoke(ContainerInterface $container): CategorieService
     {
         /**
          * @var EntityManager $entityManager
@@ -19,7 +24,7 @@ class CategorieServiceFactory {
         $entityManager = $container->get('doctrine.entitymanager.orm_default');
 
         $service = new CategorieService();
-        $service->setEntityManager($entityManager);
+        $service->setObjectManager($entityManager);
         return $service;
     }
 
diff --git a/src/UnicaenParametre/Service/Parametre/ParametreService.php b/src/UnicaenParametre/Service/Parametre/ParametreService.php
index 5e8bc5ba86c7c09ff0f7b8fadbc089137b40233a..9977529191a63b9810c016109104500dbcbbbf93 100644
--- a/src/UnicaenParametre/Service/Parametre/ParametreService.php
+++ b/src/UnicaenParametre/Service/Parametre/ParametreService.php
@@ -5,15 +5,17 @@ namespace UnicaenParametre\Service\Parametre;
 use Doctrine\ORM\NonUniqueResultException;
 use Doctrine\ORM\ORMException;
 use Doctrine\ORM\QueryBuilder;
-use UnicaenApp\Exception\RuntimeException;
-use UnicaenApp\Service\EntityManagerAwareTrait;
+use DoctrineModule\Persistence\ProvidesObjectManager;
+use parametre\src\UnicaenParametre\Exception\ParametreMalTypeException;
+use RuntimeException;
 use UnicaenParametre\Entity\Db\Categorie;
 use UnicaenParametre\Entity\Db\Parametre;
-use Zend\Mvc\Controller\AbstractActionController;
+use Laminas\Mvc\Controller\AbstractActionController;
+use UnicaenParametre\Exception\ParametreNotFoundException;
 
 class ParametreService
 {
-    use EntityManagerAwareTrait;
+    use ProvidesObjectManager;
 
     /** GESTION ENTITY ************************************************************************************************/
 
@@ -21,13 +23,13 @@ class ParametreService
      * @param Parametre $parametre
      * @return Parametre
      */
-    public function create(Parametre $parametre) : Parametre
+    public function create(Parametre $parametre): Parametre
     {
         try {
-            $this->getEntityManager()->persist($parametre);
-            $this->getEntityManager()->flush($parametre);
+            $this->getObjectManager()->persist($parametre);
+            $this->getObjectManager()->flush($parametre);
         } catch (ORMException $e) {
-            throw new RuntimeException("Une erreur s'est produite lors de l'enregistrement en base.",0,$e);
+            throw new RuntimeException("Une erreur s'est produite lors de l'enregistrement en base.", 0, $e);
         }
         return $parametre;
     }
@@ -36,12 +38,12 @@ class ParametreService
      * @param Parametre $parametre
      * @return Parametre
      */
-    public function update(Parametre $parametre) : Parametre
+    public function update(Parametre $parametre): Parametre
     {
         try {
-            $this->getEntityManager()->flush($parametre);
+            $this->getObjectManager()->flush($parametre);
         } catch (ORMException $e) {
-            throw new RuntimeException("Une erreur s'est produite lors de la mise à jour en base.",0,$e);
+            throw new RuntimeException("Une erreur s'est produite lors de la mise à jour en base.", 0, $e);
         }
         return $parametre;
     }
@@ -50,13 +52,13 @@ class ParametreService
      * @param Parametre $parametre
      * @return Parametre
      */
-    public function delete(Parametre $parametre) : Parametre
+    public function delete(Parametre $parametre): Parametre
     {
         try {
-            $this->getEntityManager()->remove($parametre);
-            $this->getEntityManager()->flush($parametre);
+            $this->getObjectManager()->remove($parametre);
+            $this->getObjectManager()->flush($parametre);
         } catch (ORMException $e) {
-            throw new RuntimeException("Une erreur s'est produite lors de la suppression en base.",0,$e);
+            throw new RuntimeException("Une erreur s'est produite lors de la suppression en base.", 0, $e);
         }
         return $parametre;
     }
@@ -66,9 +68,9 @@ class ParametreService
     /**
      * @return QueryBuilder
      */
-    public function createQueryBuilder() : QueryBuilder
+    public function createQueryBuilder(): QueryBuilder
     {
-        $qb = $this->getEntityManager()->getRepository(Parametre::class)->createQueryBuilder('parametre')
+        $qb = $this->getObjectManager()->getRepository(Parametre::class)->createQueryBuilder('parametre')
             ->addSelect('categorie')->join('parametre.categorie', 'categorie');
         return $qb;
     }
@@ -78,7 +80,7 @@ class ParametreService
      * @param string $ordre
      * @return Parametre[]
      */
-    public function getParametres(string $champ = 'ordre', string $ordre = 'ASC') : array
+    public function getParametres(string $champ = 'ordre', string $ordre = 'ASC'): array
     {
         $qb = $this->createQueryBuilder()
             ->orderBy('parametre.' . $champ, $ordre);
@@ -92,7 +94,7 @@ class ParametreService
      * @param string $ordre
      * @return Parametre[]
      */
-    public function getParametresByCategorie(Categorie $categorie, string $champ = 'ordre', string $ordre = 'ASC') : array
+    public function getParametresByCategorie(Categorie $categorie, string $champ = 'ordre', string $ordre = 'ASC'): array
     {
         $qb = $this->createQueryBuilder()
             ->andWhere('parametre.categorie = :categorie')
@@ -106,16 +108,15 @@ class ParametreService
      * @param int $id
      * @return Parametre|null
      */
-    public function getParametre(int $id) : ?Parametre
+    public function getParametre(int $id): ?Parametre
     {
         $qb = $this->createQueryBuilder()
             ->andWhere('parametre.id = :id')
-            ->setParameter('id', $id)
-        ;
+            ->setParameter('id', $id);
         try {
             $result = $qb->getQuery()->getOneOrNullResult();
         } catch (NonUniqueResultException $e) {
-            throw new RuntimeException("Plusieurs Parametre partagent le même id [".$id."]",0,$e);
+            throw new RuntimeException("Plusieurs Parametre partagent le même id [" . $id . "]", 0, $e);
         }
         return $result;
     }
@@ -125,19 +126,18 @@ class ParametreService
      * @param string $parametreCode
      * @return Parametre|null
      */
-    public function getParametreByCode(string $categorieCode, string $parametreCode ) : ?Parametre
+    public function getParametreByCode(string $categorieCode, string $parametreCode): ?Parametre
     {
         $qb = $this->createQueryBuilder()
             ->andWhere('categorie.code = :categorieCode')
             ->andWhere('parametre.code = :parametreCode')
             ->setParameter('categorieCode', $categorieCode)
-            ->setParameter('parametreCode', $parametreCode)
-        ;
+            ->setParameter('parametreCode', $parametreCode);
 
         try {
             $result = $qb->getQuery()->getOneOrNullResult();
         } catch (NonUniqueResultException $e) {
-            throw new RuntimeException("Plusieurs Parametre partagent le même code [".$categorieCode ." - ".$parametreCode."]",0,$e);
+            throw new RuntimeException("Plusieurs Parametre partagent le même code [" . $categorieCode . " - " . $parametreCode . "]", 0, $e);
         }
         return $result;
     }
@@ -147,12 +147,30 @@ class ParametreService
      * @param string $param
      * @return Parametre
      */
-    public function getRequestedParametre(AbstractActionController $controller, string $param = 'parametre')
+    public function getRequestedParametre(AbstractActionController $controller, string $param = 'parametre') : ?Parametre
     {
         $id = $controller->params()->fromRoute($param);
         /** @var Parametre $parametre */
-        $parametre =  $this->getParametre($id);
+        $parametre = $this->getParametre($id);
         return $parametre;
     }
 
+    /** FACADE ********************************************************************************************************/
+
+    /**
+     * @throws ParametreNotFoundException
+     * @throws ParametreMalTypeException
+     */
+    public function getValeurForParametre(string $categorieCode, string $parametreCode)
+    {
+        $parametre = $this->getParametreByCode($categorieCode, $parametreCode);
+        if ($parametre === null) {
+            throw new ParametreNotFoundException("Aucun paramètre de trouvé pour les codes [Categorie: ".$categorieCode.",Parametre: ".$parametreCode."]");
+        }
+        if ($parametre->getValeursPossibles() === Parametre::TYPE_STRING)           return $parametre->getValeur();
+        if ($parametre->getValeursPossibles() === Parametre::TYPE_BOOLEAN)          return ($parametre->getValeur() === true);
+        if ($parametre->getValeursPossibles() === Parametre::TYPE_NUMBER)           return ((int) $parametre->getValeur());
+
+        throw new ParametreMalTypeException("Le type [".$parametre->getValeursPossibles()."] du paramètre [Categorie: ".$categorieCode.",Parametre: ".$parametreCode."] est non géré");
+    }
 }
\ No newline at end of file
diff --git a/src/UnicaenParametre/Service/Parametre/ParametreServiceAwareTrait.php b/src/UnicaenParametre/Service/Parametre/ParametreServiceAwareTrait.php
index 327e4c7e20b1adc4f6286cd4b8f46fa3b6c04d45..695f20d9003510a9e60d1b4a8ecfc02c3f0e48b1 100644
--- a/src/UnicaenParametre/Service/Parametre/ParametreServiceAwareTrait.php
+++ b/src/UnicaenParametre/Service/Parametre/ParametreServiceAwareTrait.php
@@ -5,22 +5,13 @@ namespace UnicaenParametre\Service\Parametre;
 
 trait ParametreServiceAwareTrait
 {
-    /** @var ParametreService */
-    protected $parametreService;
+    protected ParametreService $parametreService;
 
-    /**
-     * @param ParametreService $parametreService
-     * @return ParametreService
-     */
-    public function setParametreService(ParametreService $parametreService) : ParametreService
+    public function setParametreService(ParametreService $parametreService) : void
     {
         $this->parametreService = $parametreService;
-        return $this->parametreService;
     }
 
-    /**
-     * @return ParametreService
-     */
     public function getParametreService() : ParametreService
     {
         return $this->parametreService;
diff --git a/src/UnicaenParametre/Service/Parametre/ParametreServiceFactory.php b/src/UnicaenParametre/Service/Parametre/ParametreServiceFactory.php
index 1bee2aa06bea8fc8fc0c6f34d9715efe4fce5a51..6f1efb4e24b965a941b23fec0a2dd01bbb2fcf9a 100644
--- a/src/UnicaenParametre/Service/Parametre/ParametreServiceFactory.php
+++ b/src/UnicaenParametre/Service/Parametre/ParametreServiceFactory.php
@@ -4,6 +4,8 @@ namespace UnicaenParametre\Service\Parametre;
 
 use Doctrine\ORM\EntityManager;
 use Interop\Container\ContainerInterface;
+use Psr\Container\ContainerExceptionInterface;
+use Psr\Container\NotFoundExceptionInterface;
 
 class ParametreServiceFactory
 {
@@ -11,8 +13,10 @@ class ParametreServiceFactory
     /**
      * @param ContainerInterface $container
      * @return ParametreService
+     * @throws ContainerExceptionInterface
+     * @throws NotFoundExceptionInterface
      */
-    public function __invoke(ContainerInterface $container)
+    public function __invoke(ContainerInterface $container) : ParametreService
     {
         /**
          * @var EntityManager $entityManager
@@ -20,7 +24,7 @@ class ParametreServiceFactory
         $entityManager = $container->get('doctrine.entitymanager.orm_default');
 
         $service = new ParametreService();
-        $service->setEntityManager($entityManager);
+        $service->setObjectManager($entityManager);
         return $service;
     }
 }
\ No newline at end of file
diff --git a/view/unicaen-parametre/categorie/index.phtml b/view/unicaen-parametre/categorie/index.phtml
index 62cc9a518414c7c31a1e497379e3c6b32a2d4a7b..1cf9ad3fab17b690a4d1658bb5ef66a2510e0dc7 100644
--- a/view/unicaen-parametre/categorie/index.phtml
+++ b/view/unicaen-parametre/categorie/index.phtml
@@ -25,6 +25,7 @@ $this->headTitle("Affichage des paramètres");
 if ($selection !== null) $categories = [ $selection ];
 ?>
 
+
 <h1 class="page-header">
     Affichage des paramètres
 </h1>
@@ -41,15 +42,11 @@ if ($selection !== null) $categories = [ $selection ];
 <?php foreach ($categories as $categorie) : ?>
     <?php $id = $categorie->getId(); ?>
 
-    <div class="row">
-        <div class="col-md-12">
-            <h2 title="<?php echo $categorie->getDescription(); ?>" data-toggle="tooltip" data-html="true" style="cursor: help;"> Catégorie : <?php echo $categorie->getLibelle(); ?> </h2>
-        </div>
-        <div class="pull-right">
-            <br/>
+            <h2 title="<?php echo $categorie->getDescription(); ?>" data-bs-toggle="tooltip" data-bs-html="true" style="cursor: help;"> Catégorie : <?php echo $categorie->getLibelle(); ?> </h2>
+
             <a  <?php /** @see \Application\Controller\ParametreController::ajouterAction() */?>
                 href="<?php echo $this->url('parametre/ajouter', ['categorie' => $categorie->getId()], [], true); ?>"
-                class="btn btn-primary action ajax-modal" data-event="modification">
+                class="btn btn-primary ajax-modal" data-event="modification">
                 <i class="fas fa-plus"></i> Ajouter un paramètre
             </a>
             <?php if ($selection === null) : ?>
@@ -65,15 +62,15 @@ if ($selection !== null) $categories = [ $selection ];
                         <i class="fas fa-times"></i> Supprimer la catégorie
                     </a>
                 <?php else : ?>
-                    <span class="btn btn-danger action disabled" data-toggle="tooltip" data-html="true"
+                    <span class="btn btn-danger action disabled" data-bs-toggle="tooltip" data-bs-html="true"
                           title="La catégorie est non vide et ne peut être supprimée"
                     >
                     <i class="fas fa-times"></i> Supprimer la catégorie
                 </span>
                 <?php endif; ?>
             <?php endif; ?>
-        </div>
-    </div>
+<br/>
+
 
     <?php if (!isset($array_parametre[$id])) : ?>
         Aucun paramètre pour cette catégorie
@@ -96,7 +93,7 @@ if ($selection !== null) $categories = [ $selection ];
             <?php foreach ($array_parametre[$id] as $parametre) : ?>
                 <tr>
                     <td>
-                        <span title="<?php echo $parametre->getDescription(); ?>" data-toggle="tooltip" data-html="true" style="cursor: help;">
+                        <span title="<?php echo $parametre->getDescription(); ?>" data-bs-toggle="tooltip" data-bs-html="true" style="cursor: help;">
                             <?php echo $parametre->getLibelle(); ?>
                         </span>
                     </td>
@@ -120,16 +117,19 @@ if ($selection !== null) $categories = [ $selection ];
                     </td>
                     <td>
                         <a  <?php /** @see \Application\Controller\ParametreController::modifierValeurAction() */?>
-                            href="<?php echo $this->url('parametre/modifier-valeur', ['parametre' => $parametre->getId()], [], true); ?>" title="Modifier la valeur du paramètre <strong><?php echo $parametre->getCode(); ?></strong"
-                            class="ajax-modal" data-event="modification" data-toggle="tooltip" data-html="true">
+                            href="<?php echo $this->url('parametre/modifier-valeur', ['parametre' => $parametre->getId()], [], true); ?>"
+                            title="Modifier la valeur du paramètre [<?php echo $parametre->getCode(); ?>]"
+                            class="ajax-modal" data-event="modification" >
                             <i class="fas fa-pencil-alt"></i></a>
                         <a  <?php /** @see \Application\Controller\ParametreController::modifierAction() */?>
-                            href="<?php echo $this->url('parametre/modifier', ['parametre' => $parametre->getId()], [], true); ?>" title="Modifier le paramètre <strong><?php echo $parametre->getCode(); ?></strong"
-                            class="ajax-modal" data-event="modification" data-toggle="tooltip" data-html="true">
+                            href="<?php echo $this->url('parametre/modifier', ['parametre' => $parametre->getId()], [], true); ?>"
+                            title="Modifier le paramètre [<?php echo $parametre->getCode(); ?>]"
+                            class="ajax-modal" data-event="modification">
                             <i class="fas fa-cog"></i></a>
                         <a  <?php /** @see \Application\Controller\ParametreController::supprimerAction() */?>
-                            href="<?php echo $this->url('parametre/supprimer', ['parametre' => $parametre->getId()], [], true); ?>" title="Supprimer le paramètre <strong><?php echo $parametre->getCode(); ?></strong"
-                            class="ajax-modal disabled" data-event="modification" data-toggle="tooltip" data-html="true" disabled>
+                            href="<?php echo $this->url('parametre/supprimer', ['parametre' => $parametre->getId()], [], true); ?>"
+                            title="Supprimer le paramètre [<?php echo $parametre->getCode(); ?>]"
+                            class="ajax-modal disabled" data-event="modification" disabled>
                             <i class="fas fa-times disabled"></i></a>
                     </td>
                 </tr>
@@ -137,8 +137,10 @@ if ($selection !== null) $categories = [ $selection ];
             </tbody>
         </table>
     <?php endif;?>
+    <br/>
 <?php endforeach; ?>
 
+
 <script>
     $(function () {
         $('body')
@@ -147,7 +149,7 @@ if ($selection !== null) $categories = [ $selection ];
                 window.location.reload();
             })
             .tooltip({
-                selector: '[data-toggle="tooltip"]',
+                selector: '[data-bs-toggle="tooltip"]',
                 placement: "bottom",
                 html: true
             });
diff --git a/view/unicaen-parametre/default/default-form.phtml b/view/unicaen-parametre/default/default-form.phtml
index cc6b6761c78eca5f2e10c4f3fafb3add48e68c36..7d72b4e9ccbcb0ec07dad6d2e6fba22e8857be88 100644
--- a/view/unicaen-parametre/default/default-form.phtml
+++ b/view/unicaen-parametre/default/default-form.phtml
@@ -4,7 +4,7 @@
  * @var Form $form
  */
 
-use Zend\Form\Form;
+use Laminas\Form\Form;
 
 ?>