diff --git a/ecrire/inc/plugin.php b/ecrire/inc/plugin.php
index 47b9788143d83b643e1e2be0e220c02598a8d58d..ee19a622a05ed12e5e58fb9a27aec732958d7fa4 100644
--- a/ecrire/inc/plugin.php
+++ b/ecrire/inc/plugin.php
@@ -659,13 +659,13 @@ function plugin_necessite($n, $liste, $balise = 'necessite') {
  * @uses plugin_version_compatible()
  * @uses plugin_message_incompatibilite()
  *
- * @param $liste
+ * @param array $liste
  *    Liste de description des plugins
- * @param $nom
+ * @param string $nom
  *    Le plugin donc on cherche la presence
- * @param $intervalle
+ * @param string $intervalle
  *    L'éventuelle intervalle de compatibilité de la dépendance. ex: [1.1.0;]
- * @param $balise
+ * @param string $balise
  *    Permet de définir si on teste un utilise ou un nécessite
  * @return string.
  *    Vide si ok,
diff --git a/ecrire/inc/queue.php b/ecrire/inc/queue.php
index df8dc835303bb9511d14e20654bd2220cfe7f9cb..4875cc09a4de423689a9752323a29584e2b5d388 100644
--- a/ecrire/inc/queue.php
+++ b/ecrire/inc/queue.php
@@ -29,21 +29,21 @@ define('_JQ_PENDING', 0);
  *
  * Les tâches sont ensuites exécutées par date programmée croissant/priorité décroissante
  *
- * @param $function
+ * @param string $function
  *   The function name to call.
- * @param $description
+ * @param string $description
  *   A human-readable description of the queued job.
- * @param $arguments
+ * @param array $arguments
  *   Optional array of arguments to pass to the function.
- * @param $file
+ * @param string $file
  *   Optional file path which needs to be included for $fucntion.
- * @param $no_duplicate
+ * @param bool $no_duplicate
  *   If TRUE, do not add the job to the queue if one with the same function and
  *   arguments already exists.
  *   If 'function_only' test of existence is only on function name (for cron job)
- * @param $time
+ * @param int $time
  *    time for starting the job. If 0, job will start as soon as possible
- * @param $priority
+ * @param int $priority
  *    -10 (low priority) to +10 (high priority), 0 is the default
  * @return int
  *  id of job
diff --git a/ecrire/inc/securiser_action.php b/ecrire/inc/securiser_action.php
index c71567f5f1aeb2eb07e264239b8881e24fdf3a54..789b60476a4fe7d3a52f1e126e16578e0d738967 100644
--- a/ecrire/inc/securiser_action.php
+++ b/ecrire/inc/securiser_action.php
@@ -267,8 +267,8 @@ function calculer_action_auteur($action, $id_auteur = null) {
  * Verifier le hash de signature d'une action
  * toujours exclusivement pour l'auteur en cours
  *
- * @param $action
- * @param $hash
+ * @param string $action
+ * @param string $hash
  * @return bool
  */
 function verifier_action_auteur($action, $hash) {
diff --git a/ecrire/inc/svg.php b/ecrire/inc/svg.php
index f53f15b5f4e09c22d4e0a18b3d6035ebc0ab54a6..362ee2574f803e2b635dc2b39d6e693767ab5277 100644
--- a/ecrire/inc/svg.php
+++ b/ecrire/inc/svg.php
@@ -116,7 +116,7 @@ function svg_lire_attributs($img) {
 /**
  * Convertir l'attribut widht/height d'un SVG en pixels
  * (approximatif eventuellement, du moment qu'on respecte le ratio)
- * @param $dimension
+ * @param string $dimension
  * @return bool|float|int
  */
 function svg_dimension_to_pixels($dimension, $precision = 2) {
@@ -194,8 +194,8 @@ function svg_clip_in_box($svg, $x, $y, $width, $height) {
 /**
  * Redimensionner le SVG via le width/height de la balise
  * @param string $img
- * @param $new_width
- * @param $new_height
+ * @param string $new_width
+ * @param string $new_height
  * @return bool|string
  */
 function svg_redimensionner($img, $new_width, $new_height) {
@@ -361,7 +361,7 @@ function svg_force_viewBox_px($img, $force_width_and_height = false) {
 
 /**
  * Extract all colors in SVG
- * @param $img
+ * @param string $img
  * @return array|mixed
  */
 function svg_extract_couleurs($img) {
@@ -377,8 +377,8 @@ function svg_extract_couleurs($img) {
 /**
  * Redimensionner le SVG via le width/height de la balise
  * @param string $img
- * @param $new_width
- * @param $new_height
+ * @param string $new_width
+ * @param string $new_height
  * @return bool|string
  */
 function svg_recadrer($img, $new_width, $new_height, $offset_width, $offset_height, $background_color = '') {
@@ -438,8 +438,8 @@ function svg_recadrer($img, $new_width, $new_height, $offset_width, $offset_heig
 
 /**
  * Ajouter un background au SVG : un rect pleine taille avec la bonne couleur
- * @param $img
- * @param $background_color
+ * @param string $img
+ * @param string $background_color
  * @return bool|string
  */
 function svg_ajouter_background($img, $background_color) {
@@ -468,8 +468,8 @@ function svg_ajouter_background($img, $background_color) {
 
 /**
  * Ajouter un voile au SVG : un rect pleine taille avec la bonne couleur/opacite, en premier plan
- * @param $img
- * @param $background_color
+ * @param string $img
+ * @param string $background_color
  * @return bool|string
  */
 function svg_ajouter_voile($img, $background_color, $opacity) {
@@ -498,7 +498,7 @@ function svg_ajouter_voile($img, $background_color, $opacity) {
 
 /**
  * Ajouter un background au SVG : un rect pleine taille avec la bonne couleur
- * @param $img
+ * @param string $img
  * @param array $attributs
  * @return bool|string
  */
@@ -577,8 +577,11 @@ function svg_filter_grayscale($img, $intensity) {
 
 /**
  * Filtre sepia en utilisant <filter>
- * @param $img
- * @param $intensity
+ *
+ * FIXME: $intensity unused ?
+ *
+ * @param string $img
+ * @param float $intensity
  * @return bool|string
  */
 function svg_filter_sepia($img, $intensity) {
@@ -588,7 +591,7 @@ function svg_filter_sepia($img, $intensity) {
 
 /**
  * Ajouter un background au SVG : un rect pleine taille avec la bonne couleur
- * @param $img
+ * @param string $img
  * @param array string $HorV
  * @return bool|string
  */
@@ -623,9 +626,9 @@ function svg_flip($img, $HorV) {
  * @param string $img
  * @param int/float $angle
  *   angle en degres
- * @param $center_x
+ * @param float $center_x
  *   centre X de la rotation entre 0 et 1, relatif a la pleine largeur (0=bord gauche, 1=bord droit)
- * @param $center_y
+ * @param float $center_y
  *   centre Y de la rotation entre 0 et 1, relatif a la pleine hauteur (0=bord top, 1=bord bottom)
  * @return bool|string
  */
@@ -649,8 +652,8 @@ function svg_rotate($img, $angle, $center_x, $center_y) {
  * Filtrer les couleurs d'un SVG avec une callback
  * (peut etre lent si beaucoup de couleurs)
  *
- * @param $img
- * @param $callback_filter
+ * @param string $img
+ * @param string $callback_filter
  * @return bool|mixed|string
  */
 function svg_filtrer_couleurs($img, $callback_filter) {
diff --git a/ecrire/inc/texte_mini.php b/ecrire/inc/texte_mini.php
index 4f982841223f6b6cc96e307f3f0daa526d039321..3c6134d84a14c65f91e2de01dfe478f477770fdb 100644
--- a/ecrire/inc/texte_mini.php
+++ b/ecrire/inc/texte_mini.php
@@ -112,10 +112,10 @@ defined('_BALISES_BLOCS_REGEXP') || define('_BALISES_BLOCS_REGEXP', ',</?(' . _B
  * une $source differente ; le script detecte automagiquement si ce qu'on
  * echappe est un div ou un span
  *
- * @param $rempl
- * @param $source
- * @param $no_transform
- * @param $mode
+ * @param string $rempl
+ * @param string $source
+ * @param bool $no_transform
+ * @param string|null $mode
  * @return string
  */
 function code_echappement($rempl, $source = '', $no_transform = false, $mode = null) {
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 098138031a2249aee8f391aae729aad871180959..d9a6e23698bd24674deb1a8f83d4bac4d15b9e3e 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -721,7 +721,7 @@ function nettoyer_uri($reset = null) {
  *
  * Attention, la regexp doit suivre _CONTEXTE_IGNORE_VARIABLES défini au début de public/assembler.php
  *
- * @param $request_uri
+ * @param string $request_uri
  * @return string
  */
 function nettoyer_uri_var($request_uri) {
@@ -1781,8 +1781,10 @@ function autoriser_sans_cookie($nom, $strict = false) {
 
 /**
  * Charger la fonction de gestion des urls si elle existe
- * @param $quoi : 'page' 'objet' 'decoder' ou objet spip pour lequel on cherche la fonction url par defaut (si type==='defaut')
- * @param $type : type des urls (par defaut la meta type_urls) ou 'defaut' pour trouver la fonction par defaut d'un type d'objet
+ * @param string $quoi
+ *     'page' 'objet' 'decoder' ou objet spip pour lequel on cherche la fonction url par defaut (si type==='defaut')
+ * @param string $type
+ * 		type des urls (par defaut la meta type_urls) ou 'defaut' pour trouver la fonction par defaut d'un type d'objet
  * @return string
  */
 function charger_fonction_url(string $quoi, string $type = '') {
diff --git a/ecrire/plugins/infos_paquet.php b/ecrire/plugins/infos_paquet.php
index 2f71e1f35a34132c7d2171a31735ec5b8f9585c9..70d2493afa4949446187b426e06258341e18a485 100644
--- a/ecrire/plugins/infos_paquet.php
+++ b/ecrire/plugins/infos_paquet.php
@@ -18,7 +18,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
  * et conversion en tableau PHP identique a celui fourni par plugin.xml
  * manque la description
  *
- * @param $desc
+ * @param array $desc
  * @param string $plug
  * @param string $dir_plugins
  * @return array
diff --git a/ecrire/public/assembler.php b/ecrire/public/assembler.php
index e8b4221c58f5884042bf3c8f62584b30101d6359..e14f207290401132850981df43531ece38395d13 100644
--- a/ecrire/public/assembler.php
+++ b/ecrire/public/assembler.php
@@ -591,12 +591,12 @@ function styliser_modele($modele, $id, $contexte = null) {
 /**
  * Calcule le modele et retourne la mini-page ainsi calculee
  *
- * @param $type string Nom du modele
- * @param $id int
- * @param $params array Paramètres du modèle
- * @param $lien array Informations du lien entourant l'appel du modèle en base de données
- * @param $connect string
- * @param $env array
+ * @param string $type Nom du modele
+ * @param int $id
+ * @param array $params Paramètres du modèle
+ * @param array $lien Informations du lien entourant l'appel du modèle en base de données
+ * @param string $connect
+ * @param array $env
  * @staticvar string $compteur
  * @return string
  */
diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php
index 72f5fd7faa69266fa95ed6aa95b199ad4396b286..2acb08c8658e80e2f512416fa37ecd336054a226 100644
--- a/ecrire/public/balises.php
+++ b/ecrire/public/balises.php
@@ -1694,7 +1694,7 @@ function balise_REM_dist($p) {
 /**
  * Une balise #NULL quand on a besoin de passer un argument null sur l'appel d'un filtre ou formulaire
  * (evite un #EVAL{null})
- * @param $p
+ * @param Champ $p
  * @return mixed
  */
 function balise_NULL_dist($p) {
diff --git a/ecrire/public/cacher.php b/ecrire/public/cacher.php
index 6eff90a000b79751ea1b735a14ed1742c9e1978b..ec695b72461f398fc81271e893df32751e54c318 100644
--- a/ecrire/public/cacher.php
+++ b/ecrire/public/cacher.php
@@ -38,7 +38,7 @@ function generer_nom_fichier_cache($contexte, $page) {
  * Attention a modifier simultanement le sanity check de
  * la fonction retire_cache() de inc/invalideur
  *
- * @param $nom_cache
+ * @param string $nom_cache
  * @return string
  */
 function cache_chemin_fichier($nom_cache, $ecrire = false) {
@@ -68,7 +68,7 @@ function cache_chemin_fichier($nom_cache, $ecrire = false) {
  * ecrire le cache dans un casier
  *
  * @param string $nom_cache
- * @param $valeur
+ * @param array $valeur
  * @return bool
  */
 function ecrire_cache($nom_cache, $valeur) {