diff --git a/.docheader b/.docheader
new file mode 100644
index 0000000000000000000000000000000000000000..5efa004d5030f3b8a46a1272d0629b6b384f88b4
--- /dev/null
+++ b/.docheader
@@ -0,0 +1,15 @@
+%package% - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+Copyright (C) %yearRange% Irstea <dsi.poleis.contact@lists.irstea.fr>
+
+This program is free software: you can redistribute it and/or modify it under
+the terms of the GNU Lesser General Public License as published by the Free
+Software Foundation, either version 3 of the License, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License and the GNU
+Lesser General Public License along with this program. If not, see
+<https://www.gnu.org/licenses/>.
diff --git a/.editorconfig b/.editorconfig
deleted file mode 120000
index bab0d35c9233a6831796344a0889540754f8fe40..0000000000000000000000000000000000000000
--- a/.editorconfig
+++ /dev/null
@@ -1 +0,0 @@
-devtools/editorconfig
\ No newline at end of file
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000000000000000000000000000000000000..ee7f2f08dca15cc88c9bfd4b62bbdac017e4f022
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,22 @@
+# editorconfig.org
+root=true
+
+[*]
+charset=utf-8
+end_of_line=lf
+indent_size=4
+indent_style=space
+insert_final_newline=true
+tab_width=4
+trim_trailing_whitespace=true
+
+[*.{js,yml,yaml,json,ts}]
+indent_size=2
+tab_width=2
+
+[Makefile]
+indent_style=tab
+
+[*.md]
+max_line_length = off
+trim_trailing_whitespace = false
diff --git a/.php_cs.dist b/.php_cs.dist
index 5166747b306d2eeea03e8a54073f5a68271913e8..1c4cd592a2cd77245135adaad28b19d930f2d30d 100644
--- a/.php_cs.dist
+++ b/.php_cs.dist
@@ -1,150 +1,16 @@
-<?php
-define('COMMIT_CACHE', '.php_cs.commit-cache');
+<?php declare(strict_types = 1);
 
 $finder = PhpCsFixer\Finder::create()
     ->exclude('vendor')
     ->exclude('node_modules')
-    ->exclude('cache')
+    ->exclude('var')
     ->files()
     ->name('*.php')
+    ->name('console')
+    ->name('.php_cs.dist')
     ->in('.');
 
-$yearRange = getGitCommitYears();
-
-$ruleSets = ['@PSR2' => true, '@Symfony' => true];
-
-$rules = [
-    // Configuration && overrides
-    'binary_operator_spaces'                    => ['align_double_arrow' => true],
-    'blank_line_after_opening_tag'              => false,
-    'concat_space'                              => ['spacing' => 'one'],
-    'method_argument_space'                     => ['ensure_fully_multiline' => true],
-
-    // Risky
-    'is_null'                                   => ['use_yoda_style' => false],
-    'non_printable_character'                   => ['use_escape_sequences_in_strings' => true],
-
-    // Safe
-    'align_multiline_comment'                   => true,
-    'array_syntax'                              => ['syntax' => 'short'],
-    'general_phpdoc_annotation_remove'          => ['annotations' => ['author', 'package']],
-    'no_multiline_whitespace_before_semicolons' => true,
-    'no_useless_else'                           => true,
-    'no_useless_return'                         => true,
-    'ordered_imports'                           => true,
-    'phpdoc_add_missing_param_annotation'       => true,
-    'phpdoc_annotation_without_dot'             => true,
-    'phpdoc_order'                              => true,
-    'semicolon_after_instruction'               => true,
-    'yoda_style'                                => false,
-    'self_accessor'                             => false,
-
-    'header_comment' => [
-        'commentType' => 'comment',
-        'location'    => 'after_declare_strict',
-        'separate'    => 'bottom',
-        'header'      => <<<HEADER
-irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
-Copyright (C) $yearRange IRSTEA
-
-This program is free software: you can redistribute it and/or modify it under
-the terms of the GNU Lesser General Public License as published by the Free
-Software Foundation, either version 3 of the License, or (at your option) any
-later version.
-
-This program is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License and the GNU
-Lesser General Public License along with this program. If not, see
-<https://www.gnu.org/licenses/>.
-HEADER
-        ,
-    ],
-];
-
-$phpVersion = findComposerPhpReq();
-
-if ($phpVersion >= 5.6) {
-    $ruleSets['@PHP56Migration'] = true;
-}
-if ($phpVersion >= 7.0) {
-    $ruleSets['@PHP70Migration'] = true;
-    $rules['declare_strict_types'] = true;
-}
-if ($phpVersion >= 7.1) {
-    $ruleSets['@PHP71Migration'] = true;
-}
-
-echo "Rulesets: " . implode(', ', array_keys($ruleSets)) . ".\n";
-
-return PhpCsFixer\Config::create()
-  ->setRiskyAllowed(true)
-  ->setUsingCache(false)
-  ->setIndent('    ')
-  ->setLineEnding("\n")
-  ->setRules(array_merge($ruleSets, $rules))
-  ->setFinder($finder);
-
-/**
- * @return string
- */
-function getGitCommitYears(): string
-{
-    return getCachedValue('years', function () {
-        echo "Examining git history...\n";
-        $last = date('Y');
-        $first = exec('git log --format=%cd --date=format:%Y --date-order | tail -n1') ?? $last;
-        return (null !== $last && $last !== $first) ? "$first-$last" : $first;
-    });
-}
-
-/**
- * @return float
- */
-function findComposerPhpReq()
-{
-    return getCachedValue('php-req', function () {
-        if (file_exists('composer.json')) {
-            $data = json_decode(file_get_contents('composer.json'), true);
-            if (is_array($data) && isset($data['require']['php'])) {
-                if (preg_match('/(?:>=?|\^|~)\s*([57]\.[0-9])/', $data['require']['php'], $groups)) {
-                    return (float) $groups[1];
-                }
-            }
-        }
-
-        return 5.6;
-    });
-}
-
-/**
- * @param string   $key
- * @param callable $produce
- *
- * @return string|int|bool|array
- */
-function getCachedValue($key, $produce)
-{
-    static $commit = null;
-    if (null === $commit) {
-        $commit = trim(`git rev-parse HEAD`);
-    }
-    if (file_exists(COMMIT_CACHE) && filemtime(COMMIT_CACHE) >= filemtime(__FILE__)) {
-        $cache = json_decode(file_get_contents(COMMIT_CACHE), true);
-    } else {
-        $cache = [];
-    }
-    if (!isset($cache[$commit][$key])) {
-        if (!isset($cache[$commit])) {
-            $cache[$commit] = [];
-        }
-        $cache[$commit][$key] = $produce();
-        file_put_contents(COMMIT_CACHE, json_encode($cache));
-    }
-
-    return $cache[$commit][$key];
-}
-
-// vim:filetype=php
+return Irstea\CS\Config::create()
+    ->setIndent('    ')
+    ->setLineEnding("\n")
+    ->setFinder($finder);
diff --git a/composer.json b/composer.json
index bf4003e2fb1cc00ee1fda4cf1ed43d0bc264362c..f1a29da46b151455ba278989afc8a93b9e2e6b56 100644
--- a/composer.json
+++ b/composer.json
@@ -48,10 +48,22 @@
         "xenolope/quahog": "^2.1"
     },
     "require-dev": {
-        "phpunit/phpunit": "^7"
+        "hexmedia/yaml-linter": "^0.2",
+        "irstea/composer-require-checker-shim": "^2.0",
+        "irstea/php-cs-fixer-config": "^1.0",
+        "irstea/phpcpd-shim": "^3.0",
+        "irstea/phploc-shim": "^4.0",
+        "irstea/phpmd-config": "^1.0",
+        "irstea/phpstan-config": "^1.1",
+        "jakub-onderka/php-parallel-lint": "^1.0",
+        "pcov/clobber": "^2.0",
+        "phpunit/phpunit": "^7.0"
     },
     "config": {
-        "sort-packages": true
+        "sort-packages": true,
+        "platform": {
+            "php": "7.1.30"
+        }
     },
     "extra": {
         "branch-alias": {
@@ -65,5 +77,32 @@
             ".git*",
             ".idea"
         ]
+    },
+    "scripts": {
+        "post-install-cmd": "@clobber-phpunit",
+        "post-update-cmd": "@clobber-phpunit",
+        "clobber-phpunit": "[ -d vendor/phpunit/phpunit ] && vendor/bin/pcov . clobber",
+
+        "fix-cs": "vendor/bin/php-cs-fixer fix --verbose",
+        "phploc": "vendor/bin/phploc src tests --exclude tests/Fixtures/var",
+        "test": [
+          "@test:lint",
+          "@test:php-cs-fixer",
+          "@test:phpcpd",
+          "@test:phpmd",
+          "@test:phpstan",
+          "@test:composer-require-checker",
+          "@test:phpunit"
+        ],
+        "test:lint": [
+          "vendor/bin/parallel-lint -j $(nproc) --exclude tests/Fixtures/var src tests ",
+          "vendor/bin/yaml-lint src"
+        ],
+        "test:php-cs-fixer": "vendor/bin/php-cs-fixer fix --dry-run --verbose",
+        "test:phpcpd": "vendor/bin/phpcpd --fuzzy src tests --exclude=Fixtures/var",
+        "test:composer-require-checker": "vendor/bin/composer-require-checker",
+        "test:phpmd": "vendor/bin/phpmd src,tests text ./phpmd-ruleset.xml --suffixes=php",
+        "test:phpstan": "vendor/bin/phpstan analyse --no-progress",
+        "test:phpunit": "vendor/bin/phpunit"
     }
 }
diff --git a/devtools/.editorconfig b/devtools/.editorconfig
deleted file mode 120000
index 6f27d6090c578d428ea0947b9cf2356bd77d736c..0000000000000000000000000000000000000000
--- a/devtools/.editorconfig
+++ /dev/null
@@ -1 +0,0 @@
-editorconfig
\ No newline at end of file
diff --git a/devtools/.gitrepo b/devtools/.gitrepo
deleted file mode 100644
index 280a3d4ef9c8840cebaa898145a50669748df47e..0000000000000000000000000000000000000000
--- a/devtools/.gitrepo
+++ /dev/null
@@ -1,11 +0,0 @@
-; DO NOT EDIT (unless you know what you are doing)
-;
-; This subdirectory is a git "subrepo", and this file is maintained by the
-; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme
-;
-[subrepo]
-	remote = git@gitlab-ssh.irstea.fr:pole-is/devtools-config.git
-	branch = master
-	commit = 0c931beb09149c83b9defadd3f96284e7c91ba44
-	parent = 06988e9db1b139f8a6baf91aa1007c717451455a
-	cmdver = 0.3.1
diff --git a/devtools/README.md b/devtools/README.md
deleted file mode 100644
index 431d33a46f403674be09900c8234bb34a43a34e4..0000000000000000000000000000000000000000
--- a/devtools/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-Ce dépôt contient la configuration par défaut de quelques outils utiles pendant le développement.
-
-Installation
-============
-
-Cloner le dossier dans $HOME/.config/devtools.
-
-```bash
-git clone git@gitlab-ssh.irstea.fr:pole-is/devtools-config.git $HOME/.config/devtools
-```
-
-Utilisation
-
-Globale
--------
-
-Créer des liens symboliques dans $HOME pour .editorconf et phpcs.xml.dist:
-
-```bash
-ln -snf $HOME/.config/devtools/php/phpcs.xml.dist $HOME/phpcs.xml.dist
-ln -snf $HOME/.config/devtools/.editorconfig $HOME/.editorconfig
-```
-
-Enfin, configurer PHPStorm pour utiliser les fichiers $HOME/.config/devtools/php/phpcs.xml.dist et $HOME/.config/devtools/php/phpmd-ruleset.xml pour phpcs et phpmd respectivement.
-
-Par projet
-----------
-
-php-cs-fixer nécessite de copier le fichier directement dans le projet :
-
-```bash
-cp $HOME/.config/devtools/php/.php_cs.dist chemin/vers/mon/projet
-```
-
-Pour phpcs et phpmd, c'est également nécessaire pour l'intégration continue.
-
-Outils
-======
-
-* [editorconfig](): permet de configurer globalement l'encodage, l'indentation et la gestion des espaces.
-
-* [phpcs](https://github.com/squizlabs/PHP_CodeSniffer): vérification du style de codage.
-
-* [php-cs-fixer](https://github.com/FriendsOfPhp/PHP-CS-Fixer): cousin de phpcs, mais qui permet de corriger les fichiers et inclut également des aide pour migrer d'une version de PHP à une autre. 
-
-* [phpmd](https://phpmd.org/): détection de bugs potentielles, de fonctions/classes trop complexes, ...
-
-
diff --git a/devtools/editorconfig b/devtools/editorconfig
deleted file mode 100644
index e12e5a76d0dcff60e60ac131ab91286c3245027c..0000000000000000000000000000000000000000
--- a/devtools/editorconfig
+++ /dev/null
@@ -1,22 +0,0 @@
-# editorconfig.org
-root=true
-
-[*]
-charset=utf-8
-end_of_line=lf
-indent_size=4
-indent_style=space
-insert_final_newline=true
-tab_width=4
-trim_trailing_whitespace=true
-
-[*.{js,yml,json,ts}]
-indent_size=2
-tab_width=2
-
-[Makefile]
-indent_style=tab
-
-[*.md]
-max_line_length = off
-trim_trailing_whitespace = false
diff --git a/devtools/gitlab/gitlab-ci.bundle.yml b/devtools/gitlab/gitlab-ci.bundle.yml
deleted file mode 100644
index 0c9a6684c80b7ad7974170086e0bfbc07cbc7bbc..0000000000000000000000000000000000000000
--- a/devtools/gitlab/gitlab-ci.bundle.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-.defaults: &defaults
-  tags: [ docker ]
-  image: isdevtools.irstea.fr/poleis/php-analysis:7.1
-
-phploc:
-  <<: *defaults
-  script: phploc src
-
-lint:
-  <<: *defaults
-  script:
-    - parallel-lint -j $(nproc) src
-    - twig-lint lint src
-    - yaml-lint src
-
-php-cs-fixer:
-  <<: *defaults
-  script: php-cs-fixer fix --dry-run --verbose
-
-phpcpd:
-  <<: *defaults
-  script: phpcpd --fuzzy src
-
-.with-vendors: &with-vendors
-  <<: *defaults
-  before_script:
-    - composer install --prefer-dist --no-progress --no-suggest
-  cache:
-    key: "$CI_COMMIT_REF_NAME"
-    paths:
-      - /composer/cache
-
-composer-require-checker:
-  <<: *with-vendors
-  script: composer-require-checker
-
-phpmd:
-  <<: *with-vendors
-  script: phpmd src text ./phpmd-ruleset.xml --suffixes=php
diff --git a/devtools/php/.php_cs.dist b/devtools/php/.php_cs.dist
deleted file mode 120000
index 13ed54280da19d777d42f04eb2deca2dbdf52a4a..0000000000000000000000000000000000000000
--- a/devtools/php/.php_cs.dist
+++ /dev/null
@@ -1 +0,0 @@
-php_cs.dist
\ No newline at end of file
diff --git a/devtools/php/php_cs.dist b/devtools/php/php_cs.dist
deleted file mode 100644
index 5166747b306d2eeea03e8a54073f5a68271913e8..0000000000000000000000000000000000000000
--- a/devtools/php/php_cs.dist
+++ /dev/null
@@ -1,150 +0,0 @@
-<?php
-define('COMMIT_CACHE', '.php_cs.commit-cache');
-
-$finder = PhpCsFixer\Finder::create()
-    ->exclude('vendor')
-    ->exclude('node_modules')
-    ->exclude('cache')
-    ->files()
-    ->name('*.php')
-    ->in('.');
-
-$yearRange = getGitCommitYears();
-
-$ruleSets = ['@PSR2' => true, '@Symfony' => true];
-
-$rules = [
-    // Configuration && overrides
-    'binary_operator_spaces'                    => ['align_double_arrow' => true],
-    'blank_line_after_opening_tag'              => false,
-    'concat_space'                              => ['spacing' => 'one'],
-    'method_argument_space'                     => ['ensure_fully_multiline' => true],
-
-    // Risky
-    'is_null'                                   => ['use_yoda_style' => false],
-    'non_printable_character'                   => ['use_escape_sequences_in_strings' => true],
-
-    // Safe
-    'align_multiline_comment'                   => true,
-    'array_syntax'                              => ['syntax' => 'short'],
-    'general_phpdoc_annotation_remove'          => ['annotations' => ['author', 'package']],
-    'no_multiline_whitespace_before_semicolons' => true,
-    'no_useless_else'                           => true,
-    'no_useless_return'                         => true,
-    'ordered_imports'                           => true,
-    'phpdoc_add_missing_param_annotation'       => true,
-    'phpdoc_annotation_without_dot'             => true,
-    'phpdoc_order'                              => true,
-    'semicolon_after_instruction'               => true,
-    'yoda_style'                                => false,
-    'self_accessor'                             => false,
-
-    'header_comment' => [
-        'commentType' => 'comment',
-        'location'    => 'after_declare_strict',
-        'separate'    => 'bottom',
-        'header'      => <<<HEADER
-irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
-Copyright (C) $yearRange IRSTEA
-
-This program is free software: you can redistribute it and/or modify it under
-the terms of the GNU Lesser General Public License as published by the Free
-Software Foundation, either version 3 of the License, or (at your option) any
-later version.
-
-This program is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License and the GNU
-Lesser General Public License along with this program. If not, see
-<https://www.gnu.org/licenses/>.
-HEADER
-        ,
-    ],
-];
-
-$phpVersion = findComposerPhpReq();
-
-if ($phpVersion >= 5.6) {
-    $ruleSets['@PHP56Migration'] = true;
-}
-if ($phpVersion >= 7.0) {
-    $ruleSets['@PHP70Migration'] = true;
-    $rules['declare_strict_types'] = true;
-}
-if ($phpVersion >= 7.1) {
-    $ruleSets['@PHP71Migration'] = true;
-}
-
-echo "Rulesets: " . implode(', ', array_keys($ruleSets)) . ".\n";
-
-return PhpCsFixer\Config::create()
-  ->setRiskyAllowed(true)
-  ->setUsingCache(false)
-  ->setIndent('    ')
-  ->setLineEnding("\n")
-  ->setRules(array_merge($ruleSets, $rules))
-  ->setFinder($finder);
-
-/**
- * @return string
- */
-function getGitCommitYears(): string
-{
-    return getCachedValue('years', function () {
-        echo "Examining git history...\n";
-        $last = date('Y');
-        $first = exec('git log --format=%cd --date=format:%Y --date-order | tail -n1') ?? $last;
-        return (null !== $last && $last !== $first) ? "$first-$last" : $first;
-    });
-}
-
-/**
- * @return float
- */
-function findComposerPhpReq()
-{
-    return getCachedValue('php-req', function () {
-        if (file_exists('composer.json')) {
-            $data = json_decode(file_get_contents('composer.json'), true);
-            if (is_array($data) && isset($data['require']['php'])) {
-                if (preg_match('/(?:>=?|\^|~)\s*([57]\.[0-9])/', $data['require']['php'], $groups)) {
-                    return (float) $groups[1];
-                }
-            }
-        }
-
-        return 5.6;
-    });
-}
-
-/**
- * @param string   $key
- * @param callable $produce
- *
- * @return string|int|bool|array
- */
-function getCachedValue($key, $produce)
-{
-    static $commit = null;
-    if (null === $commit) {
-        $commit = trim(`git rev-parse HEAD`);
-    }
-    if (file_exists(COMMIT_CACHE) && filemtime(COMMIT_CACHE) >= filemtime(__FILE__)) {
-        $cache = json_decode(file_get_contents(COMMIT_CACHE), true);
-    } else {
-        $cache = [];
-    }
-    if (!isset($cache[$commit][$key])) {
-        if (!isset($cache[$commit])) {
-            $cache[$commit] = [];
-        }
-        $cache[$commit][$key] = $produce();
-        file_put_contents(COMMIT_CACHE, json_encode($cache));
-    }
-
-    return $cache[$commit][$key];
-}
-
-// vim:filetype=php
diff --git a/devtools/php/phpcs.xml.dist b/devtools/php/phpcs.xml.dist
deleted file mode 100644
index f6de6b66839ca1496d0dc3ff25dcbc3133d8f467..0000000000000000000000000000000000000000
--- a/devtools/php/phpcs.xml.dist
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0"?>
-<ruleset name="Irstea" namespace="Irstea\Standard">
-
-    <description>Coding standard of Irstea, pôle informatique scientifique</description>
-
-    <file>src</file>
-
-    <arg name="encoding" value="utf-8"/>
-    <arg name="extensions" value="php"/>
-    <arg name="ignore" value="vendor/*,*/cache/*"/>
-    <arg value="sp"/>
-
-    <rule ref="PSR2"/>
-
-    <rule ref="Generic.Files.LineLength">
-        <properties>
-            <property name="lineLimit" value="140"/>
-        </properties>
-    </rule>
-
-</ruleset>
diff --git a/devtools/php/phpmd-ruleset.xml b/devtools/php/phpmd-ruleset.xml
deleted file mode 100644
index 7e28455615076a99a6b6c1ba6f471d1f839b1ac6..0000000000000000000000000000000000000000
--- a/devtools/php/phpmd-ruleset.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<ruleset name="Irstea PHPMD ruleset"
-         xmlns="http://pmd.sf.net/ruleset/1.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd">
-
-    <description>Irstea ruleset</description>
-
-    <rule ref="rulesets/controversial.xml/Superglobals" />
-    <rule ref="rulesets/controversial.xml/CamelCaseClassName"/>
-    <rule ref="rulesets/controversial.xml/CamelCasePropertyName"/>
-
-    <rule ref="rulesets/design.xml/ExitExpression" />
-    <rule ref="rulesets/design.xml/EvalExpression" />
-    <rule ref="rulesets/design.xml/GotoStatement" />
-    <rule ref="rulesets/design.xml/DevelopmentCodeFragment">
-        <property name="unwanted-functions" value="var_dump,print_r,debug_zval_dump,debug_print_backtrace,dump" />
-    </rule>
-
-    <rule ref="rulesets/naming.xml/ShortMethodName" />
-    <rule ref="rulesets/naming.xml/ConstructorWithNameAsEnclosingClass" />
-    <rule ref="rulesets/naming.xml/ConstantNamingConventions" />
-
-    <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod" />
-    <rule ref="rulesets/unusedcode.xml/UnusedPrivateField" />
-
-    <exclude-pattern>vendor/</exclude-pattern>
-    <exclude-pattern>node_modules/</exclude-pattern>
-    <exclude-pattern>.*/cache/</exclude-pattern>
-
-</ruleset>
diff --git a/phpmd-ruleset.xml b/phpmd-ruleset.xml
deleted file mode 120000
index c6393cfe216bbef71d4a20ef857af6ee955cc40d..0000000000000000000000000000000000000000
--- a/phpmd-ruleset.xml
+++ /dev/null
@@ -1 +0,0 @@
-devtools/php/phpmd-ruleset.xml
\ No newline at end of file
diff --git a/phpmd-ruleset.xml b/phpmd-ruleset.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fcd447131c3b029f77a5f85354e8568e809b3fee
--- /dev/null
+++ b/phpmd-ruleset.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<ruleset name="Theme-Bundle ruleset"
+         xmlns="http://pmd.sf.net/ruleset/1.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd">
+
+    <description>Use the loose ruleset of irstea/phpmd-config.</description>
+
+    <exclude-pattern>vendor/</exclude-pattern>
+    <exclude-pattern>node_modules/</exclude-pattern>
+    <exclude-pattern>.*/cache/</exclude-pattern>
+    <exclude-pattern>var/</exclude-pattern>
+
+    <rule ref="vendor/irstea/phpmd-config/loose.xml"/>
+
+</ruleset>
diff --git a/phpstan.neon b/phpstan.neon
new file mode 100644
index 0000000000000000000000000000000000000000..445f6f0dc0bc7a66b3a1d50ad67a9f3ab5ca4088
--- /dev/null
+++ b/phpstan.neon
@@ -0,0 +1,9 @@
+includes:
+    - vendor/irstea/phpstan-config/phpstan.neon
+
+parameters:
+    level: 1
+
+    paths:
+        - src
+        - tests
diff --git a/src/Command/CheckCommand.php b/src/Command/CheckCommand.php
index 42781d21536472c69b4ad1de44e4e3b0c0f4e528..2a6b9633001475982c43badd0d85e0cb0bba321b 100644
--- a/src/Command/CheckCommand.php
+++ b/src/Command/CheckCommand.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Command/CollectGarbageCommand.php b/src/Command/CollectGarbageCommand.php
index 02e848a3201b9002f4a4526a3caa55fbd15b9895..7e1350b26579a0f61d8c2e5b102601d43420d183 100644
--- a/src/Command/CollectGarbageCommand.php
+++ b/src/Command/CollectGarbageCommand.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Command/CreateCommand.php b/src/Command/CreateCommand.php
index b6e3561584f5e7e4882df106ea2a5bda6d1e6c26..2a4c2422ae8695a80a38c9b4df08f9f567d01d96 100644
--- a/src/Command/CreateCommand.php
+++ b/src/Command/CreateCommand.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Command/ReadCommand.php b/src/Command/ReadCommand.php
index bbaaeb8d4eca6bd07c69ab350d59c099c9708b88..2246fd8064524ab1dd44e32bbf9a673667459b87 100644
--- a/src/Command/ReadCommand.php
+++ b/src/Command/ReadCommand.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Controller/UploadController.php b/src/Controller/UploadController.php
index 48224e83f724f62de926a72b062fef2126bacf76..9b6d1f6e94c25a77413c9a43eca9a86b00fec44a 100644
--- a/src/Controller/UploadController.php
+++ b/src/Controller/UploadController.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Controller/UploadedFileController.php b/src/Controller/UploadedFileController.php
index 5f926c8575e72a9174b0746c997a47e4ede1a753..59ea4e0c395e44d5b653de3cc6de02b979b3e931 100644
--- a/src/Controller/UploadedFileController.php
+++ b/src/Controller/UploadedFileController.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php
index 72d14f8cb9c4eae7a0c43b0be724e26b9ff3a98e..4e5fbf594e18fe9536af292bbf358ce62a9abf9b 100644
--- a/src/DependencyInjection/Configuration.php
+++ b/src/DependencyInjection/Configuration.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/DependencyInjection/IrsteaFileUploadExtension.php b/src/DependencyInjection/IrsteaFileUploadExtension.php
index 289eaa6b84ccbecbbca9ca1f05c300494e768701..1959f806df946dfb872df988d13d71760bb22bc4 100644
--- a/src/DependencyInjection/IrsteaFileUploadExtension.php
+++ b/src/DependencyInjection/IrsteaFileUploadExtension.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Entity/UploadedFile.php b/src/Entity/UploadedFile.php
index a37b5b810743ceec560d285c54340523b2086377..26e9076537ffaaa674d2826c473f91a59938e823 100644
--- a/src/Entity/UploadedFile.php
+++ b/src/Entity/UploadedFile.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Event/FileUploadCompleteEvent.php b/src/Event/FileUploadCompleteEvent.php
index 80b033f3b441c11c328c08e021cea5cf544acd51..143257e92b6c36fde35ef533a3e21e1295622f41 100644
--- a/src/Event/FileUploadCompleteEvent.php
+++ b/src/Event/FileUploadCompleteEvent.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Exception/Exception.php b/src/Exception/Exception.php
index 88a5af2b5f8d864d704e2dbb772086e944d380c2..25d10e2b238ad04e37d635f72e70ba7343a8143c 100644
--- a/src/Exception/Exception.php
+++ b/src/Exception/Exception.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Exception/RejectedFileException.php b/src/Exception/RejectedFileException.php
index 28e705c00f2e5764bcb5bbd01cc57e412db8920c..6c7ea62230c02f0efb155116a82114b32eac7e48 100644
--- a/src/Exception/RejectedFileException.php
+++ b/src/Exception/RejectedFileException.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/FileUploadEvents.php b/src/FileUploadEvents.php
index 1c6b9e7585ad4c480a17cb73d567d02e76ac4086..44baec4abe1032e9829fc040ea994a34ce1802db 100644
--- a/src/FileUploadEvents.php
+++ b/src/FileUploadEvents.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Form/DataTranformer/UploadedFileTransformer.php b/src/Form/DataTranformer/UploadedFileTransformer.php
index f397be59d714f0d7574e7777c8da6a5e212d0555..d8a1757665b6a87e0c7c4e7abc10e00c7a2dc917 100644
--- a/src/Form/DataTranformer/UploadedFileTransformer.php
+++ b/src/Form/DataTranformer/UploadedFileTransformer.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Form/Type/FileUploadType.php b/src/Form/Type/FileUploadType.php
index fa7e9efa2ff1ae9fc802b0677188e4d8e5903f55..57b93525095ea1ebd2ffe02541bebaed1ab7f84f 100644
--- a/src/Form/Type/FileUploadType.php
+++ b/src/Form/Type/FileUploadType.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Http/UploadedFileResponse.php b/src/Http/UploadedFileResponse.php
index 9fdeb876cd4d09709efb8bc2a7dc655c69b52a9a..74976c6ffb6a8e7633991b56d3fe6e8b8d0f6646 100644
--- a/src/Http/UploadedFileResponse.php
+++ b/src/Http/UploadedFileResponse.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/IrsteaFileUploadBundle.php b/src/IrsteaFileUploadBundle.php
index c976150681b780009c027c4cefb064fb79d70464..0d9bd90ee56cf1bd401d0d3516856270578dfce4 100644
--- a/src/IrsteaFileUploadBundle.php
+++ b/src/IrsteaFileUploadBundle.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Listener/CreationDataListener.php b/src/Listener/CreationDataListener.php
index 0dfa76e67c2b099c216ee81dd0f59dd43c9d139a..52db9c1585b69d8f7f10c3f778c69cc3b87484f1 100644
--- a/src/Listener/CreationDataListener.php
+++ b/src/Listener/CreationDataListener.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Listener/UploadedFileListener.php b/src/Listener/UploadedFileListener.php
index b2823719b5d6fce1eb11a231c320f1a18fcbe465..e4327e9e5e59caa75a6ecfc5285f52f9fefdfb9e 100644
--- a/src/Listener/UploadedFileListener.php
+++ b/src/Listener/UploadedFileListener.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Listener/VirusScannerListener.php b/src/Listener/VirusScannerListener.php
index 17d409396b849441cc1880770cca0d21e91a5164..974889546b6c5ce0e2fc77e0dc00399a6dab905d 100644
--- a/src/Listener/VirusScannerListener.php
+++ b/src/Listener/VirusScannerListener.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Model/FileManagerInterface.php b/src/Model/FileManagerInterface.php
index 9422e761e2d420d7cfce3407871688ab872d086f..ef832837fc8c8209bc57258e46195825033286a9 100644
--- a/src/Model/FileManagerInterface.php
+++ b/src/Model/FileManagerInterface.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Model/UploadedFileInterface.php b/src/Model/UploadedFileInterface.php
index a09af624109ec87b2978735453e9ccd7b4464708..ecf712201577773b07468dbaa6f98be7f61c03cd 100644
--- a/src/Model/UploadedFileInterface.php
+++ b/src/Model/UploadedFileInterface.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Service/FileManager.php b/src/Service/FileManager.php
index 91b5f92e307f65fddfb8786efcece840acdf0c60..24ba6691d619f83a395767b9b7ae35a8e9212e75 100644
--- a/src/Service/FileManager.php
+++ b/src/Service/FileManager.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Service/FileUrlGenerator.php b/src/Service/FileUrlGenerator.php
index 91df55018db74f270b3ea4f126eb640717faffc5..a46bc7cf29c5f5c62a99b271b530064dd5e5fefa 100644
--- a/src/Service/FileUrlGenerator.php
+++ b/src/Service/FileUrlGenerator.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Service/FileUrlGeneratorInterface.php b/src/Service/FileUrlGeneratorInterface.php
index 43d704f2de8865c64f20c064883837faeba8c1eb..3bdbab53957d0582595ca95c6e4989aff6e0fdf2 100644
--- a/src/Service/FileUrlGeneratorInterface.php
+++ b/src/Service/FileUrlGeneratorInterface.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Twig/FileUploadExtension.php b/src/Twig/FileUploadExtension.php
index 73e549a7859b252134dc563c3afe8eefeb5637eb..eb0b1700fec9fed810df52670994a00138531e24 100644
--- a/src/Twig/FileUploadExtension.php
+++ b/src/Twig/FileUploadExtension.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Utils/MimeTypeIcon.php b/src/Utils/MimeTypeIcon.php
index 3924250ba62dcc454a635469051db5d2db8b8122..cfa4bb4b60778be2a0f980ac7eb5bac276117de1 100644
--- a/src/Utils/MimeTypeIcon.php
+++ b/src/Utils/MimeTypeIcon.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Validation/FileMimeType.php b/src/Validation/FileMimeType.php
index 670ff6a168b027d96e60e4ccc3ae3d69128cd5d8..a34658634954c526170e952b340d9b2bb1912998 100644
--- a/src/Validation/FileMimeType.php
+++ b/src/Validation/FileMimeType.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Validation/FileMimeTypeValidator.php b/src/Validation/FileMimeTypeValidator.php
index bb080c1ff126ca53556e307741d78e9444a683ef..6c776895a43dc37ea9d8d55f72e894e1ee5775aa 100644
--- a/src/Validation/FileMimeTypeValidator.php
+++ b/src/Validation/FileMimeTypeValidator.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Validation/FileSize.php b/src/Validation/FileSize.php
index dacd57131e99c1198d79ba4ea9b3a4c3cc60b1c5..80da124516543f370eb9a00802daad07ceae61d7 100644
--- a/src/Validation/FileSize.php
+++ b/src/Validation/FileSize.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/src/Validation/FileSizeValidator.php b/src/Validation/FileSizeValidator.php
index ab6a236cf44b53353865a43cbe9f808d7f7edb7f..1fcd584ce86c155af22e136fea8017cb33d82a66 100644
--- a/src/Validation/FileSizeValidator.php
+++ b/src/Validation/FileSizeValidator.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/tests/Entity/UploadedFileTest.php b/tests/Entity/UploadedFileTest.php
index c40593162a6a61e444cc521dd2745993411d5fd3..bf31efd64f4701971a605de2e11df0dce39f7bec 100644
--- a/tests/Entity/UploadedFileTest.php
+++ b/tests/Entity/UploadedFileTest.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/tests/Form/DataTranformer/UploadedFileTransformerTest.php b/tests/Form/DataTranformer/UploadedFileTransformerTest.php
index dff43332fda2249a8e09d70a56190d4b1a34cddd..29a75ce5bd77070fcf3400080ba88c99a8d51fc1 100644
--- a/tests/Form/DataTranformer/UploadedFileTransformerTest.php
+++ b/tests/Form/DataTranformer/UploadedFileTransformerTest.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/tests/Listener/UploadedFileListenerTest.php b/tests/Listener/UploadedFileListenerTest.php
index 1220b858cf53b37c19579423e792b729311bbf22..f953f4991c0d089cd1662e2f85806090e07985d0 100644
--- a/tests/Listener/UploadedFileListenerTest.php
+++ b/tests/Listener/UploadedFileListenerTest.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/tests/Listener/VirusScannerListenerTest.php b/tests/Listener/VirusScannerListenerTest.php
index 1378d272094b4bb7b61fa5b78068a49cfa487629..3dfd048a2893d504fff75625418cbad4412f5886 100644
--- a/tests/Listener/VirusScannerListenerTest.php
+++ b/tests/Listener/VirusScannerListenerTest.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free
diff --git a/tests/Utils/MimeTypeIconTest.php b/tests/Utils/MimeTypeIconTest.php
index 2a010b766acdc3bcb0ad7f7bf5b6ef77945767a2..781d9c6f209439a6a9ca6c3a515ae3728c4ca000 100644
--- a/tests/Utils/MimeTypeIconTest.php
+++ b/tests/Utils/MimeTypeIconTest.php
@@ -1,7 +1,7 @@
 <?php declare(strict_types=1);
 /*
- * irstea/file-upload-bundle provides services and widgets to manage user-submitted files.
- * Copyright (C) 2015-2019 IRSTEA
+ * irstea/file-upload-bundle - Bundle de gestion de fichiers intégrée à Symfony et Twitter-Bootstrap.
+ * Copyright (C) 2015-2019 Irstea <dsi.poleis.contact@lists.irstea.fr>
  *
  * This program is free software: you can redistribute it and/or modify it under
  * the terms of the GNU Lesser General Public License as published by the Free